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生成树状图,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!

相关文章

  • springAOP完整实现过程

    springAOP完整实现过程

    当你调用SimpleService类的doSomething方法时,上述的PerformanceAspect会自动拦截此调用,并且记录该方法的执行时间,这样你就完成了一个针对Spring的AOP入门级案例,感兴趣的朋友一起看看吧
    2024-02-02
  • java实现随机森林RandomForest的示例代码

    java实现随机森林RandomForest的示例代码

    本篇文章主要介绍了java实现随机森林RandomForest的示例代码,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-08-08
  • Springboot上传文件时提示405问题及排坑过程

    Springboot上传文件时提示405问题及排坑过程

    这篇文章主要介绍了Springboot上传文件时提示405问题及排坑过程,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-07-07
  • Spring Transaction事务实现流程源码解析

    Spring Transaction事务实现流程源码解析

    此文就Spring 事务实现流程进行源码解析,我们可以借此对Spring框架更多一层理解,下面以xml形式创建一个事务进行分析
    2022-09-09
  • Java实现给Word文件添加文字水印

    Java实现给Word文件添加文字水印

    Word中设置水印时,可预设的文字或自定义文字设置为水印效果,但通常添加水印效果时,会对所有页面都设置成统一效果。本文将利用Java给Word每一页设置不同文字水印效果,需要的可以参考一下
    2022-02-02
  • Spring Cloud 2020.0.0正式发布再见了Netflix

    Spring Cloud 2020.0.0正式发布再见了Netflix

    这篇文章主要介绍了Spring Cloud 2020.0.0正式发布再见了Netflix,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-12-12
  • Java中关于文件路径读取问题的分析

    Java中关于文件路径读取问题的分析

    今天给大家带来的是关于Java的相关知识,文章围绕着Java中关于文件路径读取问题展开,文中有非常详细的介绍及代码示例,需要的朋友可以参考下
    2021-06-06
  • mybatis修改int型数据无法修改成0的解决

    mybatis修改int型数据无法修改成0的解决

    这篇文章主要介绍了mybatis修改int型数据无法修改成0的解决方案,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-09-09
  • java开发中的误区和细节整理

    java开发中的误区和细节整理

    这篇文章给大家整理了关于JAVA开发中的细节以及经常进入的误区整理,希望我们整理的内容能够给大家提供到帮助。
    2018-04-04
  • Java日常练习题,每天进步一点点(15)

    Java日常练习题,每天进步一点点(15)

    下面小编就为大家带来一篇Java基础的几道练习题(分享)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧,希望可以帮到你
    2021-07-07

最新评论