无限极树形结构

java类

public class Node {
    private int id;
    private String name;
    private int pid;

    public Node() {
    }

    public Node(int id, String name, int pid) {
        this.id = id;
        this.name = name;
        this.pid = pid;
    }
    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 int getPid() {
        return pid;
    }

    public void setPid(int pid) {
        this.pid = pid;
    }
}

生成无线级结构

 public class Treeuser {
        public static Map<String,Object> mapArray = new LinkedHashMap<String, Object>();
        public List<Fuser> menuCommon;
        public List<Object> list = new ArrayList<Object>();
        private SimpleDateFormat dsf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
    
        public List<Object> menuList(List<Fuser> menu){
            this.menuCommon = menu;
            List<Object> nodeList = new ArrayList<>();
            for (Fuser x : menu) {
                Map<String,Object> mapArr = new LinkedHashMap<String, Object>();
                if(x.getfIntroUser_id() != null){
                    mapArr.put("name","账号:"+x.getFid()+",注册于:"+dsf.format( x.getFregisterTime()));
                    if (menuChild(x.getFid()).size()>0){
                        mapArr.put("open",true);
                        mapArr.put("children", menuChild(x.getFid()));
                    }
                    nodeList.add(mapArr);
                }else {
                    //说明是根节点
                    mapArr.put("name","账号:"+x.getFid()+",注册于:"+dsf.format( x.getFregisterTime()));
                    mapArr.put("open",true);
                    //根据根节点查找个所有子节点
                    mapArr.put("children", menuChild(x.getFid()));
                    nodeList.add(mapArr);
                }
            }
            return nodeList;
        }
        public List<Object> menuList(List<Fuser> menu,Integer id){
            this.menuCommon = menu;
            List<Object> nodeList = new ArrayList<>();
            for (Fuser x : menu) {
                if (x.getFid()==id){
                    Map<String,Object> mapArr = new LinkedHashMap<String, Object>();
                    if(x.getfIntroUser_id() != null){
                        mapArr.put("name","账号:"+x.getFid()+",注册于:"+dsf.format( x.getFregisterTime()));
                        if (menuChild(x.getFid()).size()>0){
                            mapArr.put("open",false);
                            mapArr.put("children", menuChild(x.getFid()));
                        }
                        nodeList.add(mapArr);
                    }else {
                        //说明是根节点
                        mapArr.put("name","账号:"+x.getFid()+",注册于:"+dsf.format( x.getFregisterTime()));
                        mapArr.put("open",false);
                        //根据根节点查找个所有子节点
                        mapArr.put("children", menuChild(x.getFid()));
                        nodeList.add(mapArr);
                    }
                }
            }
            return nodeList;
        }
        public List<?> menuChild(Integer id){
            List<Object> lists = new ArrayList<Object>();
            for(Fuser a:menuCommon){
                Map<String,Object> childArray = new LinkedHashMap<String, Object>();
                if (a.getfIntroUser_id()!=null){
                    int fid = a.getfIntroUser_id().getFid();
                    if(fid==id){
                        childArray.put("name","账号:"+a.getFid()+",注册于:"+dsf.format( a.getFregisterTime()));
                        if (menuChild(a.getFid()).size()>0){
                            childArray.put("open",false);
                            childArray.put("children", menuChild(a.getFid()));
                        }
                        lists.add(childArray);
                    }
                }
            }
            return lists;
        }
    }
 控制层

@Controller
public class TreeController extends BaseController {
    @Autowired
    private HttpServletRequest request;
    @Autowired
    private TreeService treeService;
    @ResponseBody
    @RequestMapping(value = "/ssadmin/TreeUser",produces = {JsonEncode})
    public ModelAndView getTree()throws Exception{
        JspPage modelAndView = new JspPage(request);
        modelAndView.setViewName("ssadmin/treeUser");
        String keywords = request.getParameter("keywords");
        JSONObject jsonObject = null;
        List<Object> nodes = null;
        try {
            jsonObject = new JSONObject();
            Treeuser treeuser = new Treeuser();
            //查询所有的用户
            List<Fuser> uesr = treeService.queryUser();
            if (StringUtils.isNotEmpty(keywords)) {
                modelAndView.addObject("keywords", keywords);
                nodes = treeuser.menuList(uesr,Integer.parseInt(keywords));
            }else {
                nodes = treeuser.menuList(uesr);
            }
            jsonObject.put("data",nodes);
            String s = jsonObject.toString();
            modelAndView.addObject("treeUser",s);
        } catch (Exception e) {
            e.printStackTrace();
        }
        return modelAndView;
    }
}

jsp页面

<%@ page contentType="text/html;charset=UTF-8" pageEncoding="UTF-8"%>
<%@ include file="comm/include.inc.jsp"%>
<%
	String treeUser = (String) request.getAttribute("treeUser");
	String substring = treeUser.substring(0, treeUser.length() - 1);
	String substring1 = substring.substring(8, substring.length());
%>
<script type="text/javascript">
	var setting = {
		view : {
			//showIcon: false  //是否显示节点之间的连线
		},
	};
	var zNodes = <%=substring1%>;
	$(document).ready(function() {
		var t = $("#securityTree");
		t = $.fn.zTree.init(t, setting, zNodes);
		t.expandAll(false);
	});
</script>
<div class="panelBar">
	<ul class="toolBar">
	</ul>
</div>
<div class="pageHeader">
	<form onsubmit="return navTabSearch(this);"
		  action="ssadmin/TreeUser.html" method="post">
		<div class="searchBar">
			<table class="searchContent">
				<tr>
					<td>会员账号:<input type="text" name="keywords"
								   value="${keywords}" size="40" />
					</td>
					</td>
					<td><button type="submit" class="chaxun_btn">查询</button></td>
				</tr>
			</table>
		</div>
	</form>
</div>
<div class="pageContent" style="width: auto;">
	<div class="tabs">
		<div class="tabsContent" style="width: auto;">
			<div>
			<div layoutH="5" id="jbsxBox2moduleTree"
				 style="float:left; display:block; overflow:auto; width:100%; border:solid 1px #CCC; line-height:21px; background:#fff">
				<ul id="securityTree" class="ztree"></ul>
			</div>
		</div>
		</div>
	</div>
</div>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值