节点 二级节点 三级节点 for循环 树结构

/**
     * 返回树JSON数据
     *
     * @param extCode
     * @param isShowHide
     * @param response
     * @return
     */
    @RequiresPermissions("user")
    @ResponseBody
    @RequestMapping(value = "treeData")
    public List<Map<String, Object>> treeData(HttpServletResponse response) {
        List<Map<String, Object>> mapList = Lists.newArrayList();
        List<ProjectType> list = projectTypeService.findList(new ProjectType());
        //获取第一级节点
        List<ProjectType> fristLevelList=new ArrayList<ProjectType>();
        for (int i = 0; i < list.size(); i++) {
            ProjectType e = list.get(i);
            Map<String, Object> map = Maps.newHashMap();
            if(" ".equals(e.getParentCode().getTypeCode())){
                map.put("id", e.getTypeCode());
                map.put("pId", e.getParentCode().getTypeCode());
                map.put("name", e.getTypeName());
                mapList.add(map);
                fristLevelList.add(e);
            }

        }
        //二级节点
        List<ProjectType> secondLevelList=new ArrayList<ProjectType>();
        for (ProjectType fristProjectType : fristLevelList) {
            for (ProjectType secondProjectType : list) {
                Map<String, Object> map = Maps.newHashMap();
                if(fristProjectType.getTypeCode().equals(secondProjectType.getParentCode().getTypeCode())){
                    map.put("id", secondProjectType.getTypeCode());
                    map.put("pId", secondProjectType.getParentCode().getTypeCode());
                    map.put("name", secondProjectType.getTypeName());
                    mapList.add(map);
                    secondLevelList.add(secondProjectType);
                }
            }
        }
        //三级节点
        for (ProjectType secondProjectType : secondLevelList) {
            for (ProjectType thridProjectType : list) {
                Map<String, Object> map = Maps.newHashMap();
                if(secondProjectType.getTypeCode().equals(thridProjectType.getParentCode().getTypeCode())){
                    map.put("id", thridProjectType.getTypeCode());
                    map.put("pId", thridProjectType.getParentCode().getTypeCode());
                    map.put("name", thridProjectType.getTypeName());
                    mapList.add(map);
                }
            }
        }
        return mapList;
    }

jsp:

<div class="input-inline width-160">
<sys:treeselect id="projectType_typeName"
name="projectType.typeCode" value="${projectType.typeCode }"
labelName="projectType.typeName"
labelValue="${projectType.typeName }" title="计划类别:"
url="/prg/projectType/treeData" cssClass="required"
allowClear="true" notAllowSelectParent="true" checked="true" />
</div>

时间: 2024-10-27 06:59:46

节点 二级节点 三级节点 for循环 树结构的相关文章

JQuery/JS插件 jsTree加载树,初始化时加载前三级节点,当展开第三级节点时 就加载该节点下的所有子节点

jsTree加载树, 初始化时 加载前三级节点, 当展开第三级节点时 就加载该节点下的所有子节点 html: <!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title></title> </head> <body> <div id="plugins1"></div> <link

easyui Tree模拟级联勾选cascadeCheck,节点选择,父节点自动选中,节点取消,父节点自动取消选择,节点选择,所有子节点全部选择,节点取消,所有子节点全部取消勾选

最近项目中用到easyui tree,发现tree控件的cascadeCheck有些坑,不像miniui 的tree控件,级联勾选符合业务需求,所以就自己重新改写了onCheck事件,符合业务需求.网上百度了很多资料,都没有完全符合自己业务场景的,所以就自己动手写咯. 先说一下自己的业务需求: 1.选中节点,上级以及所有直系上级节点自动选中,所有下级子孙节点全部自动选中: 2.取消选择节点,如果兄弟节点都未选择,则上级以及所有直系上级节点自动取消选择,所有下级子孙节点全部取消选中. 这里说一下c

深入理解DOM节点类型第三篇——注释节点和文档类型节点

× 目录 [1]注释节点 [2]文档类型 前面的话 把注释节点和文档类型节点放在一起是因为IE8-浏览器的一个bug.IE8-浏览器将标签名为"!"的元素视作注释节点,所以文档声明也被视作注释节点.本文将详细介绍这两部分的内容 注释节点 [特征] 注释在DOM中是通过Comment类型来表示,注释节点的三个node属性——nodeType.nodeName.nodeValue分别是8.'#comment'和注释的内容,其父节点parentNode可能是Document或Element,

PostgreSQL 一主两备节点(两备节点为同步节点)故障恢复

PostgreSQL  同步复制及故障恢复 10.2.208.10:node1:master 10.2.208.11:node2:standby1 同步 10.2.208.12:node3:standby2 同步 10.2.208.13:node4:备用机 node1,node2,node3,node4均安装PostgreSQL数据库,master初始化数据库,standby1与standby2从master pg_basebackup. [[email protected] bin]$ ./p

T-Sql 递归查询(给定节点查所有父节点、所有子节点的方法)

-- 查找所有父节点with tab as( select Type_Id,ParentId,Type_Name from Sys_ParamType_V2_0 where Type_Id=316--子节点 union all select b.Type_Id,b.ParentId,b.Type_Name  from  tab a,--子节点数据集  Sys_ParamType_V2_0 b  --父节点数据集 where a.ParentId=b.Type_Id  --子节点数据集.paren

4.6 找出二叉树中指定节点的下一个节点(中序后继),假定每个节点有父指针。

5 / 2 6 / \ 1 4 7 / 3 class Node{ Node left; Node right; Node parent; int val; } /** 1.如果有右子树,则结果为右子树的最左节点. 2.如果没有右子树,则需要回到父节点,如果当前节点是父节点的左子树,则父节点就是结果,如果不是继续向上再找父节点. */ public TreeNode inorderSucc(TreeNode n){ if(n==null) return null; if(n.right!=nul

JS创建一个元素节点, 并把该节点添加为文档中指定节点的子节点

1 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> 2 <html> 3 <head> 4 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 5 <titl

算法总结之 删除链表的中间节点和a/b处的节点(链表中间节点的重要思想)

给定链表的表头节点head,实现删除链表的中间节点的函数 推展: 给定链表的头节点,整数a 和 整数 b,实现删除a/b处节点的函数 先来分析原问题, 长度1  直接返回 长度2 将头节点删除 长度3 删除第二个  长度4 删除第二个  长度5 删除第三个......长度每增加2 删除的节点就向后移动一个节点 如果要删除一个节点,则需要找到待删除节点的前一个节点 package TT; public class Test87 { public class Node{ public int val

Javascript进阶篇——(DOM—节点---属性、访问节点)—笔记整理

节点属性在文档对象模型 (DOM) 中,每个节点都是一个对象.DOM 节点有三个重要的属性 : 1. nodeName : 节点的名称 2. nodeValue :节点的值 3. nodeType :节点的类型 一.nodeName 属性: 节点的名称,是只读的. 1. 元素节点的 nodeName 与标签名相同 2. 属性节点的 nodeName 是属性的名称 3. 文本节点的 nodeName 永远是 #text 4. 文档节点的 nodeName 永远是 #document 二.nodeV