zTree树形插件异步加载方法详解

发布时间 - 2026-01-11 01:53:11    点击率:

本文实例为大家分享了zTree树形插件异步加载,Struts2框架,供大家参考,具体内容如下

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>异步加载</title>
<link rel="stylesheet"
  href="${pageContext.request.contextPath}/zTree_v3-master/css/demo.css">
<link rel="stylesheet"
  href="${pageContext.request.contextPath}/zTree_v3-master/css/zTreeStyle/zTreeStyle.css">
<script type="text/javascript"
  src="${pageContext.request.contextPath}/jquery-2.1.1.min.js"></script>
<script type="text/javascript"
  src="${pageContext.request.contextPath}/zTree_v3-master/js/jquery.ztree.core.min.js"></script>
<script type="text/javascript">
  var setting = {
    async : {
      enable : true,
      url : "${pageContext.request.contextPath}/ztreeAction!getMenusById.jhtml",
      autoParam : [ "id" ],
    //dataFilter : filter
    },
    data : {
      key : {
        url : "xUrl"
      },
      simpleData : {
        enable : true,
        pIdKey : "pid"
      }
    },

  };
  $(document).ready(function() {
    $.fn.zTree.init($("#treeDemo"), setting);
  });
</script>



</head>
<body>
  <div class="ztree"
    style="width: 20%; height: 500px; padding-top: 10px; float: left; border: 1px solid #FF0000;">
    <ul id="treeDemo"></ul>
  </div>

</body>
</html>

上面呢,是jsp页面的代码,因为是纯插件测试,可以直接复制过去使用的,

action层代码,可以直接复制使用

public void getMenusById(){
    List<Ztree> list=null;
    try {
      list=ztreeService.getMenusById(ztree);
    } catch (Exception e) {
      e.printStackTrace();
    }
    super.writeJson(list);
}
public List<Ztree> getMenusById(Ztree ztree) throws Exception;
//接口

//service代码,几本都可以复制使用


package com.jk.service.impl;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Repository;

import com.jk.dao.ZtreeDao;
import com.jk.model.Ztree;
import com.jk.service.ZtreeService;
@Repository("ztreeService")
public class ZtreeServiceImpl implements ZtreeService {
  
  @Autowired
  private ZtreeDao ztreeDao;

  @Override
  public List queryList(Ztree ztree) throws Exception {
    String hql=" from Ztree where 1=1 ";
    Map<String, Object> params = new HashMap<String, Object>();
//传的对象是否为空,拼接sql+id
      if(ztree.getId()!=null){
        hql+=" and id = :id ";
        params.put("id",ztree.getId());
      }
    
    
    return ztreeDao.queryList(hql, params);
  }
  //递归查询
  @Override
  public List<Ztree> getMenusById(Ztree ztree) throws Exception {
    String hql=" from Ztree where 1=1 ";
    Map<String,Object> params=new HashMap<String,Object>();
    if(ztree.getId()==null||ztree.getId().equals("")){
      hql+=" and pid is null ";
    }else{
      hql+= " and pid = :id ";
      params.put("id",ztree.getId());
    }
    List<Ztree> queryZtree = ztreeDao.queryList(hql, params);
    List<Ztree> list=new ArrayList<Ztree>();
    for(Ztree ztree2:queryZtree){
      if(queryBoolean(ztree2)){
        ztree2.setIsParent("true");
      }
      list.add(ztree2);
    }
    return list;
  }
  //熟悉递归的朋友应该可以看懂,我就不解释了,我也聊不清楚这个递归,不误导了,代码在这,可以复制进去直接运行,
  public boolean queryBoolean(Ztree ztree) throws Exception{
    boolean flag=false;
    String hql= " from Ztree where pid = :id ";
    
    Map<String,Object> params=new HashMap<String,Object>();
    params.put("id", ztree.getId());
    List<Ztree> queryZtree = ztreeDao.queryList(hql, params);
    if(queryZtree!=null&&queryZtree.size()>0){
      flag=true;
    }
    return flag;
  }

  
}

dao层就不用写了吧,只是一个查询,下面我把ztree的表字段附上

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。


# zTree  # 树形插件  # 异步加载  # webpack中引用jquery的简单实现  # Webpack 实现 AngularJS 的延迟加载  # Vue.js中用webpack合并打包多个组件并实现按需加载  # Bootstrap Tree View简单而优雅的树结构组件实例解析  # 浅析webpack 如何优雅的使用tree-shaking(摇树优化)  # 递归  # 可以直接  # 加载  # 我也  # 我就  # 在这  # 我把  # 不清楚  # 写了  # 只是一个  # 大家分享  # 具体内容  # 大家多多  # 看懂  # 为空  # 几本  # ztreeAction  # url  # true  # id 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: ChatGPT怎么生成Excel公式_ChatGPT公式生成方法【指南】  大连网站制作费用,大连新青年网站,五年四班里的视频怎样下载啊?  韩国服务器如何优化跨境访问实现高效连接?  北京企业网站设计制作公司,北京铁路集团官方网站?  Win11怎么关闭透明效果_Windows11辅助功能视觉效果设置  php读取心率传感器数据怎么弄_php获取max30100的心率值【指南】  深圳网站制作设计招聘,关于服装设计的流行趋势,哪里的资料比较全面?  宙斯浏览器文件分类查看教程 快速筛选视频文档与图片方法  JavaScript中如何操作剪贴板_ClipboardAPI怎么用  无锡营销型网站制作公司,无锡网选车牌流程?  Laravel如何使用Laravel Vite编译前端_Laravel10以上版本前端静态资源管理【教程】  网站制作软件免费下载安装,有哪些免费下载的软件网站?  如何在建站主机中优化服务器配置?  Laravel Sail是什么_基于Docker的Laravel本地开发环境Sail入门  如何在腾讯云免费申请建站?  微信h5制作网站有哪些,免费微信H5页面制作工具?  Laravel如何实现图片防盗链功能_Laravel中间件验证Referer来源请求【方案】  Laravel项目如何进行性能优化_Laravel应用性能分析与优化技巧大全  如何破解联通资金短缺导致的基站建设难题?  Laravel如何使用查询构建器?(Query Builder高级用法)  Python3.6正式版新特性预览  LinuxShell函数封装方法_脚本复用设计思路【教程】  如何登录建站主机?访问步骤全解析  谷歌浏览器如何更改浏览器主题 Google Chrome主题设置教程  邀请函制作网站有哪些,有没有做年会邀请函的网站啊?在线制作,模板很多的那种?  如何在七牛云存储上搭建网站并设置自定义域名?  如何自定义建站之星网站的导航菜单样式?  如何用好域名打造高点击率的自主建站?  米侠浏览器网页图片不显示怎么办 米侠图片加载修复  Laravel怎么进行数据库回滚_Laravel Migration数据库版本控制与回滚操作  php结合redis实现高并发下的抢购、秒杀功能的实例  Midjourney怎样加参数调细节_Midjourney参数调整技巧【指南】  Laravel项目结构怎么组织_大型Laravel应用的最佳目录结构实践  新三国志曹操传主线渭水交兵攻略  Laravel如何实现API资源集合?(Resource Collection教程)  高端智能建站公司优选:品牌定制与SEO优化一站式服务  Swift中循环语句中的转移语句 break 和 continue  Laravel如何处理文件上传_Laravel Storage门面实现文件存储与管理  开心动漫网站制作软件下载,十分开心动画为何停播?  如何快速生成橙子建站落地页链接?  齐河建站公司:营销型网站建设与SEO优化双核驱动策略  如何快速搭建高效WAP手机网站?  VIVO手机上del键无效OnKeyListener不响应的原因及解决方法  Laravel安装步骤详细教程_Laravel环境搭建指南  如何快速配置高效服务器建站软件?  Laravel如何获取当前登录用户信息_Laravel Auth门面使用与Session用户读取【技巧】  JavaScript如何实现音频处理_Web Audio API如何工作?  JavaScript Ajax实现异步通信  Java垃圾回收器的方法和原理总结  Laravel如何实现API版本控制_Laravel版本化API设计方案