• 实现从数据库加载数据并返回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方法结果:

  • 相关阅读:
    django-高级
    django-模板
    django-视图
    django笔记一
    redis、mysql、mongodb数据库
    Scrapy-redis分布式+Scrapy-redis实战
    python2 'ascii'编码问题
    【java8新特性】方法引用
    java浮点数运算无法精确的问题
    java中Array和ArrayList区别
  • 原文地址:https://www.cnblogs.com/menbo/p/10578016.html
Copyright © 2020-2023  润新知