首页>代码>ztree通过java后台动态加载树形菜单数据并显示>/ztreeDemo/src/main/java/com/cn/ztree/action/MenuAction.java
package com.cn.ztree.action;

import java.io.PrintWriter;
import java.util.ArrayList;
import java.util.List;

import com.cn.ztree.bean.Node;
import com.cn.ztree.util.JsonUtil;

import net.sf.json.JSONArray;

public class MenuAction extends BasicAction {
	private static final long serialVersionUID = -4761611752996052175L;

	public String getMenuInfo(){
		String flag=request.getParameter("flag");
		System.out.println(flag);
		if(flag.equals("init")){//直接加载ztree
			  List<Node> list = getTrees();//得到所有节点
			  try {
			    JSONArray json=JsonUtil.convertListToJson(list);
			    response.setHeader("Cache-Control", "no-cache");
			    response.setContentType("text/html; charset=UTF-8"); 
			    PrintWriter writer;
			    writer = response.getWriter();
			    writer.write(json.toString());
			      writer.close();
			  } catch (Exception e) {
				  e.printStackTrace();
			  }
		}else if(flag.equals("ajax")){//延迟加载ztree
			  String id = request.getParameter("id");
			  if(id==null){//第一次进入初始化父节点
			    List<Node> list = new ArrayList<Node>();
			    Node in1=getById(1);
			    Node in5=getById(5);
			    list.add(in1);
			    list.add(in5);//测试用的,得到初始化0级父节点,应该从数据库中获取。
			    try {
			    	JSONArray json=JsonUtil.convertListToJson(list);
			    	 response.setHeader("Cache-Control", "no-cache");
					    response.setContentType("text/html; charset=UTF-8"); 
					    PrintWriter writer;
					    writer = response.getWriter();
					    writer.write(json.toString());
					    writer.close();
			    } catch (Exception e) {
			      e.printStackTrace();
			    }
			  }else{//根据父节点id加载对应的子节点
			    List<Node> list = getChilds(Integer.valueOf(id));//通过父id取得子节点集合,测试就自己写个方法,应该从数据库中获取。
			    try {
			    	JSONArray json=JsonUtil.convertListToJson(list);
			    	 response.setHeader("Cache-Control", "no-cache");
				     response.setContentType("text/html; charset=UTF-8"); 
				     PrintWriter writer;
				     writer = response.getWriter();
				     writer.write(json.toString());
				     writer.close();
			    } catch (Exception e) {
			      e.printStackTrace();
			    }
			  }
		}
		return null;
	}

	public List<Node> getTrees() {
		Node in = new Node();
		in.setId(1);
		in.setpId(0);
		in.setIsParent("true");
		in.setName("父节点1");
		Node in1 = new Node();
		in1.setId(2);
		in1.setpId(1);
		in1.setName("子节点11");
		in1.setIsParent("true");
		Node in2 = new Node();
		in2.setId(3);
		in2.setpId(1);
		in2.setName("子节点12");
		Node in3 = new Node();
		in3.setId(4);
		in3.setpId(2);
		in3.setName("子节点111");
		Node in4 = new Node();
		in4.setId(5);
		in4.setpId(0);
		in4.setIsParent("true");
		in4.setName("父节点2");
		Node in5 = new Node();
		in5.setId(6);
		in5.setpId(5);
		in5.setName("子节点21");
		List<Node> list = new ArrayList<Node>();
		list.add(in);
		list.add(in1);
		list.add(in2);
		list.add(in3);
		list.add(in4);
		list.add(in5);
		return list;
	}

	public Node getById(Integer id) {
		List<Node> list = getTrees();
		for (Node Node : list) {
			if (id == Node.getId()) {
				Node in = Node;
				return in;
			}
		}
		return null;
	}

	public List<Node> getChilds(Integer id) {
		List<Node> list = getTrees();
		List<Node> result = new ArrayList<Node>();
		for (Node Node : list) {
			if (id.intValue() == Node.getpId().intValue()) {
				result.add(Node);
			}
		}
		return result;
	}
}
最近下载更多
xluser  LV2 2022年8月23日
1234mama  LV19 2022年4月18日
2235140624  LV17 2022年3月29日
清江纸  LV2 2021年11月15日
huaua7676  LV30 2021年8月28日
zhanghangzhou  LV1 2021年7月15日
猫旅人  LV1 2021年7月8日
34992311  LV6 2021年6月20日
a1017514773  LV6 2021年4月28日
chengqian1  LV5 2021年4月20日
最近浏览更多
小白jmhuang  LV12 2023年6月12日
微信网友_6267057213755392  LV1 2022年12月18日
lsq54365  LV14 2022年9月9日
xluser  LV2 2022年8月23日
heweimin  LV12 2022年7月19日
t19611321  LV10 2022年7月9日
crosa_Don  LV18 2022年6月16日
291373020  LV7 2022年5月31日
1234mama  LV19 2022年4月13日
2235140624  LV17 2022年3月29日
顶部 客服 微信二维码 底部
>扫描二维码关注最代码为好友扫描二维码关注最代码为好友