刚刚把自己项目的功能型菜单从dtree迁移到了ztree,项目是ssh2+mysql,说说ztree的异步加载请求action吧,比较简单,就没有写注释
所需jar包
在struts lib下均可找到(请注意不要乱下,很容易引起冲突)
index.jsp源码
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@ taglib prefix="s" uri="/struts-tags"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme() + "://"
+ request.getServerName() + ":" + request.getServerPort()
+ path + "/";
%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<meta http-equiv="X-UA-Compatible" content="IE=7" />
<meta http-equiv="Content-Language" content="zh-cn" />
<meta http-equiv="x-ua-compatible" content="ie=7" />
<link rel="stylesheet" href="css/demo.css" type="text/css">
<link rel="stylesheet" type="text/css"
href="<%=basePath%>css/zTreeStyle/zTreeStyle.css" rel="stylesheet"
rev="stylesheet" type="text/css" media="all" />
<title>ZTree--测试</title>
<script type="text/javascript"
src="<%=basePath%>js/jquery-1.4.4.min.js">
</script>
<script type="text/javascript"
src="<%=basePath%>js/jquery.ztree.core-3.2.js">
</script>
<script type="text/javascript">
var demoTree;
$(document).ready(function(){
//参数设置
var setting={
async: {
enable: true,
url:"department.action",
autoParam:["id"]
},
simpleDate: {
enable:true,
idKey:"id",
idPKey:"parentId",
rootPid:null
}
};
//创建对象
demoTree = $.fn.zTree.init($("#deptTree"), setting);
});
</script>
</head>
<body>
<div id="demo">
<ul
style="margin-bottom: 2px; margin-left: 5px; font: normal 14px Verdana;">
</ul>
<ul id="deptTree" class="ztree"></ul>
</div>
</body>
</html>
DeparttTreeAction.java
package com.myopenshare.ztree.action;
import java.util.ArrayList;
import java.util.List;
import org.apache.struts2.ServletActionContext;
import net.sf.json.JSONArray;
import com.myopenshare.ztree.bean.Department;
import com.myopenshare.ztree.framework.ZTreeNode;
import com.myopenshare.ztree.framework.web.JsonActionSupport;
public class DeparttTreeAction extends JsonActionSupport{
private static final long serialVersionUID = 1L;
private JSONArray json;
private List<Department> departments;
public JSONArray getJson() {
return json;
}
public void setJson(JSONArray json) {
this.json = json;
}
public List<Department> getDepartments() {
return departments;
}
public void setDepartments(List<Department> departments) {
this.departments = departments;
}
public void executeDepartments(){
departments=new ArrayList<Department>();
Department dept1=new Department(0,"部门",null,true);
Department dept2=new Department(1,"财务部",dept1,false);
Department dept3=new Department(2,"开发部",dept1,true);
Department dept4=new Department(3,"销售部",dept1,true);
Department dept5=new Department(4,"人事部",dept1,true);
Department dept6=new Department(5,"java开发部",dept3,false);
Department dept7=new Department(6,"软件销售部",dept4,true);
Department dept8=new Department(7,"浙江地区",dept4,false);
Department dept9=new Department(8,"接待部",dept5,false);
Department dept10=new Department(9,"招聘部",dept5,false);
Department dept11=new Department(10,"销售一部",dept7,false);
Department dept12=new Department(11,"销售二部",dept7,false);
departments.add(dept1);
departments.add(dept3);
departments.add(dept4);
departments.add(dept5);
departments.add(dept6);
departments.add(dept7);
departments.add(dept8);
departments.add(dept9);
departments.add(dept10);
departments.add(dept11);
departments.add(dept12);
departments.add(dept2);
}
public String loadDepartmentTree(){
String id = ServletActionContext.getRequest().getParameter("id");
int treeId=-1;
if(id!=null&&!id.equals("")){
treeId=Integer.parseInt(id);
}
List<ZTreeNode> nodes = new ArrayList<ZTreeNode>();
executeDepartments();
for(Department dept:departments){
if(treeId==-1){
if(dept.getParent()==null){
nodes.add(new ZTreeNode(dept.getId(),dept.getName(),0,true,dept.getHasChild()));
}else{
if(dept.getParent().getId()==treeId){
nodes.add(new ZTreeNode(dept.getId(),dept.getName(),dept.getParent().getId(),false,dept.getHasChild()));
}
}
}else{
if(dept.getParent()!=null&&dept.getParent().getId()==treeId){
System.out.println(dept.getParent().getId());
nodes.add(new ZTreeNode(dept.getId(),dept.getName(),dept.getParent().getId(),false,dept.getHasChild()));
}
}
}
json = JSONArray.fromObject(nodes);
return SUCCESS;
}
}
Department.java
package com.myopenshare.ztree.bean;
public class Department {
private int id;
private String name;
private Department parent;
private boolean hasChild;
public Department(int id,String name,Department parent,boolean hasChild){
this.id=id;
this.name=name;
this.parent=parent;
this.hasChild=hasChild;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Department getParent() {
return parent;
}
public void setParent(Department parent) {
this.parent = parent;
}
public boolean getHasChild() {
return hasChild;
}
public void setHasChild(boolean hasChild) {
this.hasChild = hasChild;
}
}
ZTreeNode.java
package com.myopenshare.ztree.framework;
public class ZTreeNode {
private Object id;
private String name;
private Object parentId;
private boolean isParent=false;
private boolean open;
public ZTreeNode(Object id, String name,Object parentId){
this.id=id;
this.name=name;
this.parentId=parentId;
}
public ZTreeNode(Object id, String name, Object parentId,boolean open,boolean isParent){
this.id=id;
this.name=name;
this.parentId=parentId;
this.open=open;
this.isParent=isParent;
}
public Object getId() {
return id;
}
public void setId(Object id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Object getParentId() {
return parentId;
}
public void setParentId(Object parentId) {
this.parentId = parentId;
}
public boolean isIsParent() {
return isParent;
}
public void setIsParent(boolean isParent) {
this.isParent = isParent;
}
public boolean isOpen() {
return open;
}
public void setOpen(boolean open) {
this.open = open;
}
}
struts.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
"http://struts.apache.org/dtds/struts-2.0.dtd">
<struts>
<include file="struts-default.xml"/>
<package name="department" extends="json-default">
<action name="department" class="com.myopenshare.ztree.action.DeparttTreeAction" method="loadDepartmentTree">
<result name="success" type="json">
<param name="root">json</param>
</result>
</action>
</package>
</struts>
ztree在线中文文档、demo。。。。