基于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方法结果:

基于springboot的SSM框架实现返回easyui-tree所需要数据的更多相关文章

  1. 基于maven的ssm框架整合

    基于maven的ssm框架整合 第一步:通过maven建立一个web项目.                第二步:pom文件导入jar包                              (1 ...

  2. idea基于springboot搭建ssm(maven)

    版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明. 本文链接:https://blog.csdn.net/liboyang71/article/det ...

  3. Springboot,SSM框架比较,区别

    百度搜 Springboot,SSM框架区别,大多说的都是 1.springboot一个应用是一个可执行jar 2.将原有的xml配置,简化为java配置 他们说的确实没错,可是根本没有说到本质,百度 ...

  4. 基于Maven的SSM框架搭建

    Maven + Spring + Spring MVC + Mybatis + MySQL整合SSM框架 1.数据库准备 本文主要想实现SSM框架的搭建,并基于该框架实现简单的登录功能,那么先新建一张 ...

  5. IDEA下基于MAVEN的SSM框架整合

    源码可以以上传github https://github.com/ingxx/ssm_first 最近把用IDEA把SSM框架整合一遍遇到了不少坑,在这里写出来 这里maven我使用的是自己下载的3. ...

  6. SSM框架接收处理安卓端的json数据

    最近项目上与安卓端做JSON数据交互,使用的SSM框架,刚开始的时候感觉很简单,想着不就是把安卓端的JSON数据封装为Bean类对象吗? 于是就这样写了 可是这样一直报400,百度原因是因为请求url ...

  7. 接口开发-基于SpringBoot创建基础框架

    说到接口开发,能想到的开发语言有很多种,像什么Java啊..NET啊.PHP啊.NodeJS啊,太多可以用.为什么选择Java,究其原因,最后只有一个解释,那就是“学Java的人多,人员招聘范围大,有 ...

  8. 基于springboot的ssm

    参考该网址成功搭建: https://blog.csdn.net/liboyang71/article/details/73459909 目前有几个问题: 1.我使用application.yml配置 ...

  9. 在springboot或者ssm框架或者类似的框架中VO、DTO、DO、PO的概念、区别和用处

    该文章主要讨论我们开发过程当中会经常用到的对象:VO.DTO.DO.PO;由于项目和每个人的命名习惯,这里只是对这些概念进行阐述.概念: VO(View Object):视图对象,用于展示层,它的作用 ...

随机推荐

  1. 嵌入式V3s交叉编译 tslib和QT4.8.7,并使用Qt Creator编译项目

    本文主参考:http://zero.lichee.pro/%E5%BA%94%E7%94%A8/QT_index.html 环境 Ubuntu16 64位 arm-linux-gnueabihf ve ...

  2. PhpStorm 2018 破解方法

    破解方法如下: 1.修改phpstrom的验证服务器地址. 在C:\Windows\System32\drivers\etc目录下打开hosts文件,并在文件最后加入 0.0.0.0 account. ...

  3. 屏蔽F12审查元素,禁止使用右键菜单

    一.屏蔽F12审查元素 <script type="text/javascript"> document.onkeydown = function() { ) { al ...

  4. windows下面配合thinkphp5.1.7的nginx.conf内容

    参考了https://blog.csdn.net/yangjiale521/article/details/77623514 感谢该作者 #user nobody;worker_processes 1 ...

  5. Linux文件与目录管理(学习笔记)

    本笔记为<鸟哥linux私房菜>第六章学习笔记 一.目录与路径 相对路径与绝对路径 绝对路径:一定由根目录 / 写起              正确度比较好 相对路径:不是由 / 写起  ...

  6. Android Studio无法识别手机

    1.代理配置 1.1 无FQ的网络:需要配置代理: 1.2 公司网:不需要配置代理: 2.检查驱动安装情况: 2.1 检查设备管理器中的驱动是否正常安装: 成功后: 3.手机开启开发者模式

  7. 关于js-xlsx的简单使用

    关于js-xlsx的简单使用 最近要做一个东西用到对excel的操作,就是在前端将excel加载进来,操作后再生成excel,在网上找了很多种办法,能够实现的demo是下面这个: 纯前端利用 js-x ...

  8. Python 内置函数math,random

    内置函数的一些操作 - math(数学模块) - random(随机模块) - 使用内置函数时注意需要导入 math - (ceil)向上取整,返回取整数 # 向上取整,返回向上取整的数 import ...

  9. JAVA正则表达式匹配,替换,查找,切割(转)

    import java.util.ArrayList; import java.util.regex.Matcher; import java.util.regex.Pattern; public c ...

  10. Bootstrap table方法,Bootstrap table事件,配置

    调用 BootStrap Table 方法的语法: $('#table').bootstrapTable('method', parameter); 例如: $('#my_table').bootst ...