动态树示例
jsp页面源码:
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <% String path = request.getContextPath(); String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; %> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <title>treeview test</title> <!-- 引入jquery文件,--> <script src="<%=basePath%>jquery.treeview/lib/jquery-1.8.0.js" type="text/javascript"></script> <!-- 引入treeview插件 --> <script src="<%=basePath%>jquery.treeview/jquery.treeview.js" type="text/javascript"></script> <!-- 引入cookie插件(注意:这个在此处不是必须的,想用它记录状态时必须引入此文件) --> <script src="<%=basePath%>jquery.treeview/lib/jquery.cookie.js" type="text/javascript"></script> <!-- 引入treeview样式 --> <link rel="stylesheet" href="<%=basePath%>jquery.treeview/jquery.treeview.css" /> </head> <body> <ul id="tree"></ul> <script type="text/javascript"> $(document).ready(function() { //向manual.action发送请求 $.post("manual.action", function(data) { $("#tree").html(data); //加载返回的数据到页面中 $("#tree").treeview({ persist: "location", //记忆折叠的方式(location:页面刷新不保留折叠状态) collapsed: true, //初始化时的折叠状态(true:初始化为收缩节点状态) unique: true //展开同级节点的唯一性(true:当展开一个节点时,同级的其他节点会自动关闭) }); }, "html"); //指定返回值类型为html }); </script> </body> </html>
struts2 action关键代码:
@Override public String execute() throws Exception { String data = "<li>Item 1<ul><li>Item 1.1</li></ul></li><li>Item 2<ul>" + "<li>Item 2.1 <ul><li>Item 2.1.1</li><li>Item 2.1.2</li></ul></li>" + "<li>Item 2.2</li></ul></li><li>Item 3</li>"; ServletActionContext.getResponse().getWriter().write(data); return null; }
struts.xml相关配置:
<!-- 以下两种配置均可正常运行,这是为什么呢? --> <package name="ajax" extends="json-default"> <action name="manual" class="com.test.ManualAction"> <result type="json"></result> </action> </package> <package name="server" extends="struts-default"> <action name="manual" class="com.test.ManualAction"> <result>/msg.jsp</result> </action> </package>