JavaScript

超轻量级php框架startmvc

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

更新时间:2020-05-17 21:18:01 作者:startmvc
本文实例为大家分享了zTree树形插件异步加载,Struts2框架,供大家参考,具体内容如下<!D

本文实例为大家分享了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 树形插件 异步加载