日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > c/c++ >内容正文

c/c++

springmvc+ztree v3实现类似表单回显功能

發(fā)布時間:2025/3/15 c/c++ 21 豆豆
生活随笔 收集整理的這篇文章主要介紹了 springmvc+ztree v3实现类似表单回显功能 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

? ? ?在做權(quán)限管理系統(tǒng)時,可能會用到插件zTree v3,這是一個功能豐富強(qiáng)大的前端插件,應(yīng)用很廣泛,如異步加載菜單制作、下拉選擇、權(quán)限分配等。在集成SpringMVC中,我分別實(shí)現(xiàn)了zTree的添刪改查,本節(jié)主要實(shí)現(xiàn)類似表單回顯功能。如圖:

1、前端代碼

<%@ page language="java" contentType="text/html; charset=UTF-8"pageEncoding="UTF-8"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>非異步加載節(jié)點(diǎn)</title> <link rel="stylesheet"href="${pageContext.request.contextPath }/res/bootstrap/css/bootstrap.min.css" type="text/css"> <link rel="stylesheet"href="${pageContext.request.contextPath }/res/zTree/css/metroStyle/metroStyle.css" type="text/css"> <script type="text/javascript"src="${pageContext.request.contextPath }/res/bootstrap/js/jquery-1.9.1.min.js"></script> <script type="text/javascript"src="${pageContext.request.contextPath }/res/bootstrap/js/bootstrap.js"></script> <script type="text/javascript"src="${pageContext.request.contextPath }/res/zTree/js/jquery.ztree.core.js"></script> <script type="text/javascript"src="${pageContext.request.contextPath }/res/zTree/js/jquery.ztree.excheck.js"></script> <script type="text/javascript"src="${pageContext.request.contextPath }/res/zTree/js/jquery.ztree.exedit.js"></script> <script type="text/javascript">var zNodes;var setting = {check: {enable: true},data: {simpleData: {enable: true}}};//當(dāng)頁面加載完畢,向后臺發(fā)送ajax請求,獲取用戶id為1的用戶所擁有的權(quán)限//(這里要顯示所有權(quán)限,該id用戶的權(quán)限回顯時,被自動選中),這里的用戶id為1僅做測試使用,實(shí)際開發(fā)中會傳值function loadPower(){$.ajax({type:"post",url:"${pageContext.request.contextPath }/user/role_list.do",data:{"userId":1},async:false,dataType:"json",success:function(data){zNodes=data;}})}//用戶重新選擇權(quán)限時,獲取選擇權(quán)限的id,此處可以拼接權(quán)限id的字符串,到后臺切割成數(shù)組。String.split(",")function test(){//獲取被選中的節(jié)點(diǎn)集合var treeObj = $.fn.zTree.getZTreeObj("treeDemo");var nodes = treeObj.getCheckedNodes(true);//如果nodes的長度大于0說明ztree中有被選中的節(jié)點(diǎn)if(nodes.length>0){for(var i=0;i<nodes.length;i++){var id=nodes[i]["id"];//獲取選中節(jié)點(diǎn)的idvar name=nodes[i]["name"];//獲取選中節(jié)點(diǎn)的名字alert(id);alert(name);}}else{alert("沒有選中節(jié)點(diǎn)");}}//頁面加載完畢時加載此方法$(document).ready(function(){loadPower();$.fn.zTree.init($("#treeDemo"), setting, zNodes);});</script></head><body><ul id="treeDemo" class="ztree"></ul><!-- 傳遞用戶id值 --><input type="hidden" name="userId" value="${userId }"><input type="button" value="測試被選中的節(jié)點(diǎn)的id" οnclick="test();" /></body> </body> </html>

 2、后端

?1)實(shí)體類(采用JPA注解,mysql數(shù)據(jù)庫)

//User.java public class User implements Serializable{private Integer id;private String username;//用戶名private String password;//密碼private Set<Role>roles=new HashSet<Role>();//多對多#get、set方法

  

@Table(name="b_role") @Entity public class Role implements Serializable{private Integer rid;//自增Id序列private Integer id;//本身節(jié)點(diǎn)idprivate Integer pId;//父節(jié)點(diǎn)id,默認(rèn)為0,是整個樹的根private String name;//對應(yīng)zTree樹的name屬性private Boolean isParent;//是否是父節(jié)點(diǎn)private Set<User>users=new HashSet<User>();#get、set方法......

 2)dao層

package sys.dao; import java.util.List;import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.data.jpa.repository.Query; import org.springframework.data.repository.query.Param;import sys.entity.Role;public interface RoleRepository extends JpaRepository<Role, Integer> {@Query("select r from Role r where pid = ?")List<Role>getRoles(int pid);@Query(value="select * from a_role r where r.id=:id",nativeQuery=true)Role getRoleById(@Param("id")Integer id); }

  

package sys.dao;import org.springframework.data.jpa.repository.JpaRepository;import sys.entity.User;public interface UserRepository extends JpaRepository<User, Integer>{User getByUsernameAndPassword(String username,String password);User getByUsername(String username);}

 3)service層

package sys.service;import java.util.List; import java.util.Map; import java.util.Set;import sys.entity.Role;public interface RoleService {void save(Role role);List<Role>getAll();Role getRole(Integer rid);void delete(Integer id);List<Role> findAll();List<Role> getRoles(int pid);Role getRoleById(Integer id);Set<Role> getRolesInId(List<Integer> id_list);List<Map<String, Object>>queryByUserId(Integer userId); }

  

//RoleServiceImpl實(shí)現(xiàn)queryByUserId方法 /*** zTree v3回顯* 初始化化權(quán)限樹* 拼接treeNode屬性*/@Transactional(readOnly=true)@Overridepublic List<Map<String, Object>> queryByUserId(Integer userId) {//1、查出所有角色List<Role>listAll=roleRepository.findAll();//2、查出指定用戶id的角色Set<Role>listOne=userRepository.getOne(userId).getRoles();//包裝zTreeList<Map<String, Object>>list=new ArrayList<Map<String, Object>>();Map<String, Object>map=null;for(int i=0;i<listAll.size();i++){map=new HashMap<>();Role role=listAll.get(i);map.put("id", role.getId());map.put("pId", role.getpId());map.put("name", role.getName());map.put("isParent", role.getIsParent());//判斷指定用戶的角色是否在所有角色中包含,有則設(shè)置checked=true.if(listOne!=null&&listOne.size()>0&&listOne.contains(role)){map.put("checked",true);}else {map.put("checked",false);}list.add(map);}return list;}

  

package sys.controller;import java.util.List; import java.util.Map;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.RequestParam; import org.springframework.web.bind.annotation.ResponseBody;import sys.service.RoleService; @RequestMapping("user") @Controller public class UserController {@Autowiredprivate RoleService roleService;@RequestMapping("getRoles")public String getRoles(){return "treedemo/demo1";}@RequestMapping("getRoles2")public String getRoles2(){return "treedemo/demo2";}/*** 根據(jù)用戶id初始化權(quán)限樹* @param userId* @return*/@ResponseBody@RequestMapping("role_list")public List<Map<String, Object>> getRolelist(@RequestParam("userId")Integer userId){return roleService.queryByUserId(userId);} }

 3、測試

http://localhost:8080/treeDemo/user/getRoles2.do

 

 

 

轉(zhuǎn)載于:https://www.cnblogs.com/hzhh123/p/5419361.html

總結(jié)

以上是生活随笔為你收集整理的springmvc+ztree v3实现类似表单回显功能的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 日本学生初尝黑人巨免费视频 | 特级西西444www | a√天堂资源 | 天堂网a| 中文字幕日韩经典 | 婷婷在线综合 | 人人色网 | 中文字幕在线免费观看视频 | 亚洲乱视频 | 操操色 | 日本亚洲一区二区三区 | 亚洲精品久久久久中文字幕二区 | 久久男女视频 | 亚洲网站在线看 | 成人免费网站www网站高清 | 黄色在线a | 国产熟妇搡bbbb搡bbbb | 国产精品18久久久久久久久 | 你懂的国产视频 | 午夜久久剧场 | 日韩欧美高清片 | 国产激情小视频 | 免费在线黄 | 久久免费视频网 | 国产视频一区二区在线播放 | 国产老妇伦国产熟女老妇视频 | 4438x亚洲最大 | 日本a∨视频 | 男女激情网址 | jizz内谢中国亚洲jizz | 成人在线免费高清视频 | 日韩免费观看一区二区 | 清清草免费视频 | 亚洲国产精品无码久久 | 欧美在线高清 | 毛片免费全部无码播放 | 午夜肉伦伦 | 中文字字幕码一二三区 | 一区二区三区四区五区六区 | 欧美黄色小说视频 | 欧美囗交做爰视频 | 日韩影院在线 | 久久93| 日韩精品一区二区三区四区五区 | 特黄特色特刺激免费播放 | 亚洲在线视频网站 | 国产成人精品综合 | 暖暖视频日本 | jizzjizz免费| 国产淫片av片久久久久久 | 免费久久久久久 | 岛国精品资源网站 | 久久韩国| 免费看黄色小视频 | 欧美视频第一页 | 欧美大片免费观看网址 | 一级片av| 爱情岛论坛亚洲自拍 | 亚洲第一天堂网 | 轻点好疼好大好爽视频 | 伊人干综合 | 艳母在线视频 | 激情五月深爱五月 | 亚洲一区二区在线免费观看 | 黄色网址在线播放 | 91国视频 | 欧美精品在线一区 | 国产精品自偷自拍 | 免费高清视频一区二区三区 | 亚洲av第一成肉网 | 欧美色图五月天 | 黄色亚洲网站 | 欧美日韩在线观看一区二区三区 | 欧美自拍偷拍一区 | 伊人色综合久久天天 | 男女插孔视频 | 99免费观看视频 | 99久久久久成人国产免费 | 色站在线 | 高清日韩 | 青青草免费在线视频 | 欧美午夜影院 | 无码人妻丰满熟妇精品区 | 欧美一二三级 | 爱爱视频免费看 | 狠狠cao日日穞夜夜穞av | 欧美国产精品一区二区三区 | 国产精品久久久爽爽爽麻豆色哟哟 | 双性皇帝高h喷汁呻吟 | 国产一区二区在线播放视频 | 中日韩精品视频 | julia一区二区三区中文字幕 | 九九久视频 | 人人免费操 | 欧美国产日韩视频 | 亚洲激情视频在线播放 | 痴汉电车在线观看 | 色猫咪av| 久久久久久久亚洲av无码 |