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

时间:2023-03-09 06:35:45
基于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.数据库中的表

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

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所需要数据