动态树示例
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>