基于springboot的SSM框架实现返回easyui-tree所需要数据
2024-10-09 10:44:00
基于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方法结果:
最新文章
- 解读ASP.NET 5 &; MVC6系列(11):Routing路由
- iOS 10 :用 UIViewPropertyAnimator 编写动画
- 野路子土鳖ASP.NETer谈互联网的发展趋势
- js分辨浏览器类别和版本
- 【SDOI2008】【P1377】仪仗队
- java流布局管理器
- How to make 9-patch image downloaded from the Network
- 线程初步了解 - <;第一篇>;
- 重新想象 Windows 8 Store Apps (19) - 动画: 线性动画, 关键帧动画, 缓动动画
- JAVA MONGODB group查询的UTC时间问题
- C++线程安全日志库-Win32接口实现
- WebGL&;Three.js工作原理
- jQuery UI弹出新窗体
- 控制WinForm中Tab键的跳转
- [AGC 018 E] Sightseeing plan
- JavaScript之12306自动刷新车票[待完善]
- springboot系列九,springboot整合邮件服务、整合定时任务调度
- SQL Server死锁产生原因及解决办法 .
- XMind 8 Update 7 Pro 激活码
- paypal对接