zTree实现异步加载数据(使用SPRING MVC4+mybatis3.8)

2024-06-15 21:48

本文主要是介绍zTree实现异步加载数据(使用SPRING MVC4+mybatis3.8),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

1.先看效果
图一 初始化状态
这里写图片描述

图二 点击根节点(凯顿儿童美语ERP信息系统)自动加载第一层子节点(登录、注册等子节点)
这里写图片描述

图三 点击登录子节点会自动加载第三层子节点
这里写图片描述

2.代码
创建一个html文件interfaceManager.html,引入相关js文件,css文件

<link rel="stylesheet" href="../css/zTreeStyle/zTreeStyle.css"type="text/css">
<script src="../js/jquery-ui-1.11.4/jquery.js"></script>
<!-- 
<script type="text/javascript" src="js/ztree/jquery.ztree.all-3.5.js"></script> -->
<script type="text/javascript"src="../js/ztree/jquery.ztree.core-3.5.js"></script>
<script type="text/javascript"src="../js/ztree/jquery.ztree.excheck-3.5.js"></script>
<script type="text/javascript"src="../js/ztree/jquery.ztree.exedit-3.5.js"></script>
<script type="text/javascript" src="../js/interface/interfaceManager.js"></script>

然后在interfaceManager.html文件中定义一个div代码如下

<div id="menuTree"style="width: 200px; border: 1px solid #f6a828; float: left;"><ul id="tree" class="ztree" style="width: 260px; overflow: auto;"></ul></div>

然后初始化zTree 代码在interfaceManager.js文件中 代码如下

$(document).ready(function() {
var setting = {async : {enable : true,//是否异步加载url : '../interface/getTreeNodes.do',//加载数据的urldata : {simpleData : {enable : true,idKey : "id",pIdKey : "parentTid",rootPId : '0'}},autoParam : [ "id"],//异步发送请求时,表示自动传指定属性的参数值dataFilter : function(treeId, parentNode, childNodes) {//这里由于本人设置的节点属性跟zTree不一致所以进行了过滤if (!childNodes)return null;for (var i = 0, l = childNodes.length; i < l; i++) {childNodes[i].count = childNodes[i].childrenCount;if (childNodes[i].count && parseInt(childNodes[i].count) > 0) {//当主节点  下面还有父节点时自动将isParent=true//这样点击父节点zTree会自动再加载其子节点的数据childNodes[i].isParent = true;}childNodes[i].type = header_type;}return childNodes;}},callback : {beforeClick : beforeClick}
};
});
function beforeClick(treeId, treeNode) {// 表示若没有子节点父节点不再加载if (!treeNode.parent) {return false;} else {return true;}
}
初始化zTree
$.fn.zTree.init($("#tree"), setting, [ {'id' : '0',"name" : '凯顿儿童美语ERP信息系统','type' : 1,'isParent' : true} ]);

后台实现
先定义一个model类

/*** kd_develop_interface.id (id)* * @ibatorgenerated 2016-01-11 13:48:05*/private String id;/*** kd_develop_interface.parent_tId (父节点id)* * @ibatorgenerated 2016-01-11 13:48:05*/private String parentTid;/*** kd_develop_interface.name (节点名称/接口描述)* * @ibatorgenerated 2016-01-11 13:48:05*/private String name;
Controller类@Controller
@RequestMapping("/interface")
public class InterfaceInfoController {@Autowiredprivate InterfaceInfoService interfaceInfoService;@RequestMapping("/getTreeNodes")@ResponseBodypublic List<TreeNode> getTreeNodes(@RequestParam("id") String parentId) {try {return interfaceInfoService.getTreeNodes(parentId);} catch (Exception e) {e.printStackTrace();}return null;}}
@Component
public class InterfaceInfoService {@Autowiredprivate KdDevelopInterfaceDao kdDevelopInterfaceDao;public List<TreeNode> getTreeNodes(String parentId) {Map<String, Object> params = new HashMap<String, Object>();params.put("parentId", parentId);List<TreeNode> treeNodes = kdDevelopInterfaceDao.getTreeNodes(params);if (treeNodes != null) {TreeNode treeNode = null;for (int i = 0; i < treeNodes.size(); i++) {treeNode = treeNodes.get(i);if (null != treeNode.getChildrenCount() && treeNode.getChildrenCount() > 0) {treeNode.setParent(true);}}}return treeNodes;}}

sql

<select id="getTreeNodes" resultMap="TreeNodesMap" parameterType="map">SELECT di.id,di.`name`,di.parent_tId,children_Count from kd_develop_interface di   where di.parent_tId=#{父节点}  order by id asc
</select>

后期上传源码

这篇关于zTree实现异步加载数据(使用SPRING MVC4+mybatis3.8)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1064672

相关文章

批量导入txt数据到的redis过程

《批量导入txt数据到的redis过程》用户通过将Redis命令逐行写入txt文件,利用管道模式运行客户端,成功执行批量删除以Product*匹配的Key操作,提高了数据清理效率... 目录批量导入txt数据到Redisjs把redis命令按一条 一行写到txt中管道命令运行redis客户端成功了批量删除k

分布式锁在Spring Boot应用中的实现过程

《分布式锁在SpringBoot应用中的实现过程》文章介绍在SpringBoot中通过自定义Lock注解、LockAspect切面和RedisLockUtils工具类实现分布式锁,确保多实例并发操作... 目录Lock注解LockASPect切面RedisLockUtils工具类总结在现代微服务架构中,分布

Java使用Thumbnailator库实现图片处理与压缩功能

《Java使用Thumbnailator库实现图片处理与压缩功能》Thumbnailator是高性能Java图像处理库,支持缩放、旋转、水印添加、裁剪及格式转换,提供易用API和性能优化,适合Web应... 目录1. 图片处理库Thumbnailator介绍2. 基本和指定大小图片缩放功能2.1 图片缩放的

Spring Boot集成/输出/日志级别控制/持久化开发实践

《SpringBoot集成/输出/日志级别控制/持久化开发实践》SpringBoot默认集成Logback,支持灵活日志级别配置(INFO/DEBUG等),输出包含时间戳、级别、类名等信息,并可通过... 目录一、日志概述1.1、Spring Boot日志简介1.2、日志框架与默认配置1.3、日志的核心作用

Python使用Tenacity一行代码实现自动重试详解

《Python使用Tenacity一行代码实现自动重试详解》tenacity是一个专为Python设计的通用重试库,它的核心理念就是用简单、清晰的方式,为任何可能失败的操作添加重试能力,下面我们就来看... 目录一切始于一个简单的 API 调用Tenacity 入门:一行代码实现优雅重试精细控制:让重试按我

破茧 JDBC:MyBatis 在 Spring Boot 中的轻量实践指南

《破茧JDBC:MyBatis在SpringBoot中的轻量实践指南》MyBatis是持久层框架,简化JDBC开发,通过接口+XML/注解实现数据访问,动态代理生成实现类,支持增删改查及参数... 目录一、什么是 MyBATis二、 MyBatis 入门2.1、创建项目2.2、配置数据库连接字符串2.3、入

Springboot项目启动失败提示找不到dao类的解决

《Springboot项目启动失败提示找不到dao类的解决》SpringBoot启动失败,因ProductServiceImpl未正确注入ProductDao,原因:Dao未注册为Bean,解决:在启... 目录错误描述原因解决方法总结***************************APPLICA编

深度解析Spring Security 中的 SecurityFilterChain核心功能

《深度解析SpringSecurity中的SecurityFilterChain核心功能》SecurityFilterChain通过组件化配置、类型安全路径匹配、多链协同三大特性,重构了Spri... 目录Spring Security 中的SecurityFilterChain深度解析一、Security

MySQL中EXISTS与IN用法使用与对比分析

《MySQL中EXISTS与IN用法使用与对比分析》在MySQL中,EXISTS和IN都用于子查询中根据另一个查询的结果来过滤主查询的记录,本文将基于工作原理、效率和应用场景进行全面对比... 目录一、基本用法详解1. IN 运算符2. EXISTS 运算符二、EXISTS 与 IN 的选择策略三、性能对比

Redis客户端连接机制的实现方案

《Redis客户端连接机制的实现方案》本文主要介绍了Redis客户端连接机制的实现方案,包括事件驱动模型、非阻塞I/O处理、连接池应用及配置优化,具有一定的参考价值,感兴趣的可以了解一下... 目录1. Redis连接模型概述2. 连接建立过程详解2.1 连php接初始化流程2.2 关键配置参数3. 最大连