基于springboot的SSM框架实现返回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方法结果:

基于springboot的SSM框架实现返回easyui-tree所需要数据的更多相关文章
- 基于maven的ssm框架整合
基于maven的ssm框架整合 第一步:通过maven建立一个web项目. 第二步:pom文件导入jar包 (1 ...
- idea基于springboot搭建ssm(maven)
版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明. 本文链接:https://blog.csdn.net/liboyang71/article/det ...
- Springboot,SSM框架比较,区别
百度搜 Springboot,SSM框架区别,大多说的都是 1.springboot一个应用是一个可执行jar 2.将原有的xml配置,简化为java配置 他们说的确实没错,可是根本没有说到本质,百度 ...
- 基于Maven的SSM框架搭建
Maven + Spring + Spring MVC + Mybatis + MySQL整合SSM框架 1.数据库准备 本文主要想实现SSM框架的搭建,并基于该框架实现简单的登录功能,那么先新建一张 ...
- IDEA下基于MAVEN的SSM框架整合
源码可以以上传github https://github.com/ingxx/ssm_first 最近把用IDEA把SSM框架整合一遍遇到了不少坑,在这里写出来 这里maven我使用的是自己下载的3. ...
- SSM框架接收处理安卓端的json数据
最近项目上与安卓端做JSON数据交互,使用的SSM框架,刚开始的时候感觉很简单,想着不就是把安卓端的JSON数据封装为Bean类对象吗? 于是就这样写了 可是这样一直报400,百度原因是因为请求url ...
- 接口开发-基于SpringBoot创建基础框架
说到接口开发,能想到的开发语言有很多种,像什么Java啊..NET啊.PHP啊.NodeJS啊,太多可以用.为什么选择Java,究其原因,最后只有一个解释,那就是“学Java的人多,人员招聘范围大,有 ...
- 基于springboot的ssm
参考该网址成功搭建: https://blog.csdn.net/liboyang71/article/details/73459909 目前有几个问题: 1.我使用application.yml配置 ...
- 在springboot或者ssm框架或者类似的框架中VO、DTO、DO、PO的概念、区别和用处
该文章主要讨论我们开发过程当中会经常用到的对象:VO.DTO.DO.PO;由于项目和每个人的命名习惯,这里只是对这些概念进行阐述.概念: VO(View Object):视图对象,用于展示层,它的作用 ...
随机推荐
- 嵌入式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 ...
- PhpStorm 2018 破解方法
破解方法如下: 1.修改phpstrom的验证服务器地址. 在C:\Windows\System32\drivers\etc目录下打开hosts文件,并在文件最后加入 0.0.0.0 account. ...
- 屏蔽F12审查元素,禁止使用右键菜单
一.屏蔽F12审查元素 <script type="text/javascript"> document.onkeydown = function() { ) { al ...
- windows下面配合thinkphp5.1.7的nginx.conf内容
参考了https://blog.csdn.net/yangjiale521/article/details/77623514 感谢该作者 #user nobody;worker_processes 1 ...
- Linux文件与目录管理(学习笔记)
本笔记为<鸟哥linux私房菜>第六章学习笔记 一.目录与路径 相对路径与绝对路径 绝对路径:一定由根目录 / 写起 正确度比较好 相对路径:不是由 / 写起 ...
- Android Studio无法识别手机
1.代理配置 1.1 无FQ的网络:需要配置代理: 1.2 公司网:不需要配置代理: 2.检查驱动安装情况: 2.1 检查设备管理器中的驱动是否正常安装: 成功后: 3.手机开启开发者模式
- 关于js-xlsx的简单使用
关于js-xlsx的简单使用 最近要做一个东西用到对excel的操作,就是在前端将excel加载进来,操作后再生成excel,在网上找了很多种办法,能够实现的demo是下面这个: 纯前端利用 js-x ...
- Python 内置函数math,random
内置函数的一些操作 - math(数学模块) - random(随机模块) - 使用内置函数时注意需要导入 math - (ceil)向上取整,返回取整数 # 向上取整,返回向上取整的数 import ...
- JAVA正则表达式匹配,替换,查找,切割(转)
import java.util.ArrayList; import java.util.regex.Matcher; import java.util.regex.Pattern; public c ...
- Bootstrap table方法,Bootstrap table事件,配置
调用 BootStrap Table 方法的语法: $('#table').bootstrapTable('method', parameter); 例如: $('#my_table').bootst ...