ztree异步加载菜单与struts2集成

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

 

转载于:https://my.oschina.net/lsw90/blog/61680

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值