spring+srpingmvc+hibernate实现动态ztree生成树状图效果

 更新时间:2019年11月11日 09:52:37   作者:No baldness  
这篇文章主要介绍了spring+srpingmvc+hibernate动态ztree生成树状图效果,本文通过实例代码给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下

ztree生成树状图

ztree官网

前台

导入js和css包

下载地址

前端页面 ztree.jsp

<%@ page contentType="text/html;charset=UTF-8" language="java" pageEncoding="UTF-8" isELIgnored="false" %>
<!DOCTYPE html>
<HTML>
<HEAD>
	<TITLE>ztree</TITLE>
	<meta http-equiv="content-type" content="text/html; charset=UTF-8">
	<link rel="stylesheet" href="${pageContext.request.contextPath}/Css/demo.css" type="text/css">
	<link rel="stylesheet" href="${pageContext.request.contextPath}/Css/zTreeStyle/zTreeStyle.css" type="text/css">
	<script type="text/javascript" src="${pageContext.request.contextPath}/Js/jquery-1.4.4.min.js"></script>
	<script type="text/javascript" src="${pageContext.request.contextPath}/Js/jquery.ztree.core-3.5.js"></script>

	<SCRIPT type="text/javascript">
	
		//初始化
		var setting = {
			data: {
				simpleData: {
					enable: true
				}
			},
			callback: {
				beforeClick: beforeClick
			}
		};

		//数据集
		var zNodes =[

			//根据这种格式生成树状图
			// {id:1, pId:0, name:"河北省"},
			// {id:12, pId:1, name:"石家庄"},
			// {id:13, pId:1, name:"邢台"},
			// {id:14, pId:1, name:"邯郸"},
			// {id:2, pId:0, name:"北京市"},
			// {id:22, pId:2, name:"海淀区"},
			// {id:23, pId:2, name:"朝阳区"},
			// {id:24, pId:2, name:"长安区"}

		];
		
		
		//点击后的操作
		function beforeClick(treeId, treeNode, clickFlag) {


			//获取父窗口中id为Text1
	  var parentControl=parent.document.getElementById("Text1");
			//把值设置为treeNode.name;
	  parentControl.value=treeNode.name;

		}
		


		//访问控制层,获取数据。
		$(document).ready(function(){
			var url="${pageContext.request.contextPath}/menu/findZtree";
			$.getJSON(url,{},function(nodes){
				//alert(nodes);
				console.log(JSON.stringify(nodes));
				zNodes=nodes;
				$.fn.zTree.init($("#treeDemo"), setting, zNodes);
		})

	});


	</SCRIPT>
 </HEAD>

<BODY>
<div class="content_wrap">
	<div class="zTreeDemoBackground left">
		<ul id="treeDemo" class="ztree"></ul>
	</div>
</div>
</BODY>
</HTML>

后台

ztree所需实体类

package com.shp.dev.common;
public class Ztree {
 private String id;
 private String pId;
 private String name;
 public String getId() {
 return id;
 }
 public void setId(String id) {
 this.id = id;
 }
 public String getpId() {
 return pId;
 }
 public void setpId(String pId) {
 this.pId = pId;
 }
 public String getName() {
 return name;
 }
 public void setName(String name) {
 this.name = name;
 }
 public Ztree() {
 }
 public Ztree(String id, String pId, String name) {
 this.id = id;
 this.pId = pId;
 this.name = name;
 }
 @Override
 public String toString() {
 return "Ztree{" +
  "id='" + id + '\'' +
  ", pId='" + pId + '\'' +
  ", name='" + name + '\'' +
  '}';
 }
}

dao接口

package com.shp.dev.menu.dao;
import com.shp.dev.menu.pojo.Menu;
import java.util.List;
public interface MenuDao {
 List<Menu> queryAll();
}

dao的实现类

package com.shp.dev.menu.dao;
import com.shp.dev.menu.pojo.Menu;
import org.hibernate.SessionFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Repository;
import java.util.List;
@Repository("menuDao")
public class MenuDaoImpl implements MenuDao{
 @Autowired
 private SessionFactory sessionFactory;
 @Override
 public List<Menu> queryAll() {
 return sessionFactory.getCurrentSession().createQuery("from Menu").list();
 }
}

业务接口

package com.shp.dev.menu.service;
import com.shp.dev.menu.pojo.Menu;
import java.util.List;
public interface MenuService {
 List<Menu> queryAll();
}

业务实现层

package com.shp.dev.menu.service;
import com.shp.dev.menu.dao.MenuDao;
import com.shp.dev.menu.pojo.Menu;
import com.shp.dev.role.dao.RoleDao;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.List;
@Service("menuService")
public class MenuServiceImpl implements MenuService{
 //@Transactional(readOnly = true)//只读事务
 // @Transactional(rollbackFor = Exception.class)//启动事务,所有异常都回滚
 @Autowired
 private MenuDao menuDao;
 @Override
 @Transactional(readOnly = true)//只读事务
 public List<Menu> queryAll() {
 return menuDao.queryAll();
 }
}

控制层

package com.shp.dev.menu.web;
import com.shp.dev.common.Ztree;
import com.shp.dev.menu.pojo.Menu;
import com.shp.dev.menu.service.MenuService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import java.util.ArrayList;
import java.util.List;
@Controller
@RequestMapping("/menu")
public class MenuController {
 @Autowired
 private MenuService menuService;
 @RequestMapping("/findZtree")
 @ResponseBody // 返回json对象
 public List<Ztree> findZtree(){
 List<Ztree> menus=new ArrayList<Ztree>();
 List<Menu> query = menuService.queryAll();
 for (Menu m : query) {
  menus.add(new Ztree(m.getId(),m.getParent_id(),m.getName()));
 }
 return menus;
 }
}

总结

以上所述是小编给大家介绍的spring+srpingmvc+hibernate实现动态ztree生成树状图,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!

相关文章

  • java读取excel表格的方法

    java读取excel表格的方法

    这篇文章主要为大家详细介绍了java读取excel表格的方法,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-12-12
  • 一文掌握SpringSecurity BCrypt密码加密和解密

    一文掌握SpringSecurity BCrypt密码加密和解密

    BCrypt就是一款加密工具,可以比较方便地实现数据的加密工作。也可以简单理解为它内部自己实现了随机加盐处理,这篇文章主要介绍了SpringSecurity BCrypt密码加密和解密,一文学会使用BCryptPasswordEncoder的方法,需要的朋友可以参考下
    2023-04-04
  • SpringBoot整合UEditor的示例代码

    SpringBoot整合UEditor的示例代码

    本篇文章主要介绍了SpringBoot整合UEditor的示例代码,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-02-02
  • 详解Java 中的UnitTest 和 PowerMock

    详解Java 中的UnitTest 和 PowerMock

    这篇文章主要介绍了Java中的 UnitTest 和 PowerMock,文中讲解非常详细,对大家学习有很大的帮助,感兴趣的朋友可以了解下
    2020-06-06
  • 基于ReentrantLock的实现原理讲解

    基于ReentrantLock的实现原理讲解

    这篇文章主要介绍了ReentrantLock的实现原理,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-09-09
  • java区分绝对路径和相对路径的方法

    java区分绝对路径和相对路径的方法

    这篇文章主要介绍了java区分绝对路径和相对路径的方法,实例分析了java针对路径操作的相关技巧,需要的朋友可以参考下
    2015-04-04
  • Springboot使用Logback实现日志配置与异常记录

    Springboot使用Logback实现日志配置与异常记录

    默认情况下,SpringBoot内部使用logback作为系统日志实现的框架,将日志输出到控制台,不会写到日志文件。本篇文章主要讲解下如何自定义logabck.xml以及对logback文件中配置做一个详解,需要的可以参考一下
    2022-11-11
  • java创建二维码并赋予url链接的功能实现

    java创建二维码并赋予url链接的功能实现

    这篇文章给大家分享java创建二维码并赋予url链接的功能实现,需要获取要赋值给二维码的链接后缀,通过设置二维码的访问路径等一系列操作,具体实现代码跟随小编一起看看吧
    2021-06-06
  • Java基于Guava Retrying实现重试功能

    Java基于Guava Retrying实现重试功能

    这篇文章主要介绍了Java基于Guava Retrying实现重试功能,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-07-07
  • Java自学书籍推荐 程序员到架构师必看的书

    Java自学书籍推荐 程序员到架构师必看的书

    这篇文章主要为大家推荐了Java程序员到架构师自学书籍,帮助大家不断提高自己的专业水平,感兴趣的小伙伴们可以参考一下
    2016-09-09

最新评论