刚刚把自己项目的功能型菜单从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。。。。