zoukankan      html  css  js  c++  java
  • 实现从数据库加载数据并返回easyui-tree所需要数据

    基于springboot的SSM框架实现返回easyui-tree所需要数据。

    1.easyui-tree

    easui-tree目所需要的数据结构类型如下:

    [
      {
        "children": [
          {
            "children": [],
            "id": "0101",
            "text": "部门1-1"
          }
        ],
        "id": "01",
        "text": "部门1"
      },
      {
        "children": [
          {
            "children": [],
            "id": "0201",
            "text": "部门2-1"
          }
        ],
        "id": "02",
        "text": "部门2"
      }
    ]

    从数据内容可以看出,使用递归可以解决此类问题。

    2.数据库中的表

    3.实体类

    public class ParamNodes {
        private String tNo; //行号
        private String nodeNo; //节点编号
        private String nodeName; //节点名称
        private String parentNo; //父节点编号
       getter、setter 方法省略
    }
    
    //该类对象用于保存满足向前端页面返回的数据 public class ParamNodesToJsp { private String id;//对应tNo private String text; //对应nameNode private List
    <ParamNodesToJsp> children; //用来保存子节点 }

    4.mapper映射文件

       <select id="getParamNodesList" parameterType="ParamNodes" resultMap="paramNodes">
            select  NODENO,NODENAME,PARENTNO from PARAM_NODES
            <where>
                <if test="nodeNo!=null">
                    NODENO = #{nodeNo}
                </if>
                <if test="parentNo!=null">
                   and  PARENTNO = #{parentNo}
                </if>
            </where>
        </select>

    5.dao层、service层略

    6.controller层

    @RestController
    @RequestMapping(value = "/parameter")
    public class ParametersController {
    
        @Autowired
        private ParamNodesService paramNodesService;
        @Autowired
        private ParametersService parametersService;
        /**
         * 获得目录树的数据
         */
        @RequestMapping(value="/getDirectoryTree")
        public String getTreeData(){
            ParamNodes paramNodes = new ParamNodes();
            paramNodes.setParentNo("-1");
           List<ParamNodes>root = paramNodesService.getParamNodesList(paramNodes); //获取到根节点
             List<ParamNodesToJsp> rootJsp = new ArrayList<>();
            ParamNodesToJsp paramNodesToJsp = new ParamNodesToJsp();
            if(root.size()>0){
                paramNodesToJsp.setId(root.get(0).getNodeNo());
                paramNodesToJsp.setText(root.get(0).getNodeName());
                rootJsp.add(paramNodesToJsp);
            }
            JSONArray jo = JSONArray.fromObject(buildTree(rootJsp));
            return jo.toString();
        }
    
        /**
         * 构造目录树结构的json字符串
         * @param root
         * @return 目录树数据 json字符串
         */
        public List<ParamNodesToJsp>buildTree(List<ParamNodesToJsp>root){
            for (int i = 0;i<root.size();i++){
                ParamNodes paramNodes = new ParamNodes();
                paramNodes.setParentNo(root.get(i).getId().trim());//使用父节点查找孩子节点
                List<ParamNodes> children = paramNodesService.getParamNodesList(paramNodes);
                List<ParamNodesToJsp> childrenToJsp = new ArrayList<>();
                for (int k=0;k<children.size();k++){
                    ParamNodesToJsp paramNodesToJsp = new ParamNodesToJsp(); //将信息保存到childrenTojsp中,便于实现向前端页面返回满足要求的数据。
                    paramNodesToJsp.setId(children.get(k).getNodeNo());
                    paramNodesToJsp.setText(children.get(k).getNodeName());
                    childrenToJsp.add(paramNodesToJsp);
                }
                buildTree(childrenToJsp);
                root.get(i).setChildren(childrenToJsp);
            }
            return root;
        }
    }

    访问controller方法结果:

  • 相关阅读:
    《算法》第二章部分程序 part 3
    《算法》第二章部分程序 part 2
    《算法》第二章部分程序 part 1
    《算法》第一章部分程序 part 2
    《算法》第一章部分程序 part 1
    Java,Hello World,《算法》环境搭建中的问题,用 cmd 和 IntelliJ Idea 分别编译和运行 Java 程序
    《汇编语言 基于x86处理器》第十一章 MS-DOS 编程部分的代码 part 1
    《汇编语言 基于x86处理器》第十三章高级语言接口部分的代码 part 2
    《汇编语言 基于x86处理器》第十三章高级语言接口部分的代码 part 1
    《汇编语言》(王爽)补充笔记,第 14 ~ 17 章
  • 原文地址:https://www.cnblogs.com/menbo/p/10578016.html
Copyright © 2011-2022 走看看