java动态加载菜单栏_ztree通过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 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 list = new ArrayList();

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 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 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 list = new ArrayList();

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 list = getTrees();

for (Node Node : list) {

if (id == Node.getId()) {

Node in = Node;

return in;

}

}

return null;

}

public List getChilds(Integer id) {

List list = getTrees();

List result = new ArrayList();

for (Node Node : list) {

if (id.intValue() == Node.getpId().intValue()) {

result.add(Node);

}

}

return result;

}

}

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值