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

相关文章

springboot健康检查监控全过程

《springboot健康检查监控全过程》文章介绍了SpringBoot如何使用Actuator和Micrometer进行健康检查和监控,通过配置和自定义健康指示器,开发者可以实时监控应用组件的状态,... 目录1. 引言重要性2. 配置Spring Boot ActuatorSpring Boot Act

使用Java解析JSON数据并提取特定字段的实现步骤(以提取mailNo为例)

《使用Java解析JSON数据并提取特定字段的实现步骤(以提取mailNo为例)》在现代软件开发中,处理JSON数据是一项非常常见的任务,无论是从API接口获取数据,还是将数据存储为JSON格式,解析... 目录1. 背景介绍1.1 jsON简介1.2 实际案例2. 准备工作2.1 环境搭建2.1.1 添加

MySQL中删除重复数据SQL的三种写法

《MySQL中删除重复数据SQL的三种写法》:本文主要介绍MySQL中删除重复数据SQL的三种写法,文中通过代码示例讲解的非常详细,对大家的学习或工作有一定的帮助,需要的朋友可以参考下... 目录方法一:使用 left join + 子查询删除重复数据(推荐)方法二:创建临时表(需分多步执行,逻辑清晰,但会

Java实现任务管理器性能网络监控数据的方法详解

《Java实现任务管理器性能网络监控数据的方法详解》在现代操作系统中,任务管理器是一个非常重要的工具,用于监控和管理计算机的运行状态,包括CPU使用率、内存占用等,对于开发者和系统管理员来说,了解这些... 目录引言一、背景知识二、准备工作1. Maven依赖2. Gradle依赖三、代码实现四、代码详解五

java如何分布式锁实现和选型

《java如何分布式锁实现和选型》文章介绍了分布式锁的重要性以及在分布式系统中常见的问题和需求,它详细阐述了如何使用分布式锁来确保数据的一致性和系统的高可用性,文章还提供了基于数据库、Redis和Zo... 目录引言:分布式锁的重要性与分布式系统中的常见问题和需求分布式锁的重要性分布式系统中常见的问题和需求

SpringBoot基于MyBatis-Plus实现Lambda Query查询的示例代码

《SpringBoot基于MyBatis-Plus实现LambdaQuery查询的示例代码》MyBatis-Plus是MyBatis的增强工具,简化了数据库操作,并提高了开发效率,它提供了多种查询方... 目录引言基础环境配置依赖配置(Maven)application.yml 配置表结构设计demo_st

如何使用celery进行异步处理和定时任务(django)

《如何使用celery进行异步处理和定时任务(django)》文章介绍了Celery的基本概念、安装方法、如何使用Celery进行异步任务处理以及如何设置定时任务,通过Celery,可以在Web应用中... 目录一、celery的作用二、安装celery三、使用celery 异步执行任务四、使用celery

使用Python绘制蛇年春节祝福艺术图

《使用Python绘制蛇年春节祝福艺术图》:本文主要介绍如何使用Python的Matplotlib库绘制一幅富有创意的“蛇年有福”艺术图,这幅图结合了数字,蛇形,花朵等装饰,需要的可以参考下... 目录1. 绘图的基本概念2. 准备工作3. 实现代码解析3.1 设置绘图画布3.2 绘制数字“2025”3.3

在Ubuntu上部署SpringBoot应用的操作步骤

《在Ubuntu上部署SpringBoot应用的操作步骤》随着云计算和容器化技术的普及,Linux服务器已成为部署Web应用程序的主流平台之一,Java作为一种跨平台的编程语言,具有广泛的应用场景,本... 目录一、部署准备二、安装 Java 环境1. 安装 JDK2. 验证 Java 安装三、安装 mys

Springboot的ThreadPoolTaskScheduler线程池轻松搞定15分钟不操作自动取消订单

《Springboot的ThreadPoolTaskScheduler线程池轻松搞定15分钟不操作自动取消订单》:本文主要介绍Springboot的ThreadPoolTaskScheduler线... 目录ThreadPoolTaskScheduler线程池实现15分钟不操作自动取消订单概要1,创建订单后