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

相关文章

Python获取中国节假日数据记录入JSON文件

《Python获取中国节假日数据记录入JSON文件》项目系统内置的日历应用为了提升用户体验,特别设置了在调休日期显示“休”的UI图标功能,那么问题是这些调休数据从哪里来呢?我尝试一种更为智能的方法:P... 目录节假日数据获取存入jsON文件节假日数据读取封装完整代码项目系统内置的日历应用为了提升用户体验,

vue使用docxtemplater导出word

《vue使用docxtemplater导出word》docxtemplater是一种邮件合并工具,以编程方式使用并处理条件、循环,并且可以扩展以插入任何内容,下面我们来看看如何使用docxtempl... 目录docxtemplatervue使用docxtemplater导出word安装常用语法 封装导出方

SpringBoot3实现Gzip压缩优化的技术指南

《SpringBoot3实现Gzip压缩优化的技术指南》随着Web应用的用户量和数据量增加,网络带宽和页面加载速度逐渐成为瓶颈,为了减少数据传输量,提高用户体验,我们可以使用Gzip压缩HTTP响应,... 目录1、简述2、配置2.1 添加依赖2.2 配置 Gzip 压缩3、服务端应用4、前端应用4.1 N

Linux换行符的使用方法详解

《Linux换行符的使用方法详解》本文介绍了Linux中常用的换行符LF及其在文件中的表示,展示了如何使用sed命令替换换行符,并列举了与换行符处理相关的Linux命令,通过代码讲解的非常详细,需要的... 目录简介检测文件中的换行符使用 cat -A 查看换行符使用 od -c 检查字符换行符格式转换将

Java编译生成多个.class文件的原理和作用

《Java编译生成多个.class文件的原理和作用》作为一名经验丰富的开发者,在Java项目中执行编译后,可能会发现一个.java源文件有时会产生多个.class文件,从技术实现层面详细剖析这一现象... 目录一、内部类机制与.class文件生成成员内部类(常规内部类)局部内部类(方法内部类)匿名内部类二、

SpringBoot实现数据库读写分离的3种方法小结

《SpringBoot实现数据库读写分离的3种方法小结》为了提高系统的读写性能和可用性,读写分离是一种经典的数据库架构模式,在SpringBoot应用中,有多种方式可以实现数据库读写分离,本文将介绍三... 目录一、数据库读写分离概述二、方案一:基于AbstractRoutingDataSource实现动态

Python FastAPI+Celery+RabbitMQ实现分布式图片水印处理系统

《PythonFastAPI+Celery+RabbitMQ实现分布式图片水印处理系统》这篇文章主要为大家详细介绍了PythonFastAPI如何结合Celery以及RabbitMQ实现简单的分布式... 实现思路FastAPI 服务器Celery 任务队列RabbitMQ 作为消息代理定时任务处理完整

使用Jackson进行JSON生成与解析的新手指南

《使用Jackson进行JSON生成与解析的新手指南》这篇文章主要为大家详细介绍了如何使用Jackson进行JSON生成与解析处理,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录1. 核心依赖2. 基础用法2.1 对象转 jsON(序列化)2.2 JSON 转对象(反序列化)3.

Springboot @Autowired和@Resource的区别解析

《Springboot@Autowired和@Resource的区别解析》@Resource是JDK提供的注解,只是Spring在实现上提供了这个注解的功能支持,本文给大家介绍Springboot@... 目录【一】定义【1】@Autowired【2】@Resource【二】区别【1】包含的属性不同【2】@

springboot循环依赖问题案例代码及解决办法

《springboot循环依赖问题案例代码及解决办法》在SpringBoot中,如果两个或多个Bean之间存在循环依赖(即BeanA依赖BeanB,而BeanB又依赖BeanA),会导致Spring的... 目录1. 什么是循环依赖?2. 循环依赖的场景案例3. 解决循环依赖的常见方法方法 1:使用 @La