- 浏览: 5780387 次
- 性别:
- 来自: 上海
文章分类
- 全部博客 (890)
- WindowsPhone (0)
- android (88)
- android快速迭代 (17)
- android基础 (34)
- android进阶 (172)
- android高级 (0)
- android拾遗 (85)
- android动画&效果 (68)
- Material Design (13)
- LUA (5)
- j2me (32)
- jQuery (39)
- spring (26)
- hibernate (20)
- struts (26)
- tomcat (9)
- javascript+css+html (62)
- jsp+servlet+javabean (14)
- java (37)
- velocity+FCKeditor (13)
- linux+批处理 (9)
- mysql (19)
- MyEclipse (9)
- ajax (7)
- wap (8)
- j2ee+apache (24)
- 其他 (13)
- phonegap (35)
最新评论
-
Memories_NC:
本地lua脚本终于执行成功了,虽然不是通过redis
java中调用lua脚本语言1 -
ZHOU452840622:
大神://处理返回的接收状态 这个好像没有监听到 遇 ...
android 发送短信的两种方式 -
PXY:
拦截部分地址,怎么写的for(int i=0;i<lis ...
判断是否登录的拦截器SessionFilter -
maotou1988:
Android控件之带清空按钮(功能)的AutoComplet ...
自定义AutoCompleteTextView -
yangmaolinpl:
希望有表例子更好。。。,不过也看明白了。
浅谈onInterceptTouchEvent、onTouchEvent与onTouch
很多时候不同的人拥有不同的权限,不同的人拥有不同的菜单。
那怎么样做一个可以灵活变动的菜单呢。
大致思路:
建2张数据表:Module(保存着所有的菜单)和User(里面有一个“权限”字段保存着自己需要的菜单);
先获得所有菜单和用户菜单,所有的主菜单和子菜单
代码片段如下:
显示部分jsp:
注意window.location.href="user.portal?action=viewUserPermissionSubmit"+"&permissions="+values+"&id="+${requestScope.id};
这里values就是修改后的菜单id,形如:[2][3][5]...把它传到后台修改User表的权限字段并刷新页面就可以显示修改后的菜单了。
那怎么样做一个可以灵活变动的菜单呢。
大致思路:
建2张数据表:Module(保存着所有的菜单)和User(里面有一个“权限”字段保存着自己需要的菜单);
先获得所有菜单和用户菜单,所有的主菜单和子菜单
代码片段如下:
else if("viewUserPermission".equals(action)){ System.out.println("--------------------viewUserPermission-------------------"); String id=request.getParameter("id"); User instance=(User)this.getBaseService().get("User",id); // 初始化菜单,根据MenuLevel=0代表根目录从0开始 List list = this.getModuleService().getModuleTree(Integer.parseInt(instance.getMenuLevel()));//getModuleTree里的参数一般是0 Iterator menu = list.iterator(); Vector parentV = new Vector(); Vector childV = new Vector(); Module module; String allMenu=""; while (menu.hasNext()) { module = (Module) menu.next(); if (module.getParentId().intValue() == 0) {//0表示父菜单 parentV.add(module); } else { childV.add(module); } allMenu+="["+module.getId()+"]"; } request.setAttribute("parentVector", parentV);//所以的父菜单Vector request.setAttribute("childVector", childV);//所以的子菜单Vector request.setAttribute("allMenu", allMenu);//所有菜单(String型)形如:[1][2][3][4][5]... request.setAttribute("id", instance.getId());//当前用户id request.setAttribute("userPermission", instance.getPermission());//当前用户菜单(String型)形如:[2][4][5]... return mapping.findForward("viewUserPermission"); }
显示部分jsp:
<%@ page contentType="text/html; charset=UTF-8"%> <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%> <%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn"%> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>修改权限</title> <link href="css/style.css" rel="stylesheet" type="text/css" /> <script language="JavaScript" type="text/javascript"> <!-- function selectKind(target){ var obj = target; var container = document.getElementById("sub_" + obj.name); for(var i=0;i<container.getElementsByTagName("input").length;i++){ container.getElementsByTagName("input")[i].checked = obj.checked;; } } function getCheckedBox(){ if(confirm("警告:此操作可能会影响到输出。\n如果您确定要修改,请先联系管理员!")){ var checkNum=document.getElementsByTagName("input").length; var values=""; for(var i=0;i<checkNum;i++){ if(document.getElementsByTagName("input")[i].checked){ values+="["+document.getElementsByTagName("input")[i].value+"]"; } } window.location.href="user.portal?action=viewUserPermissionSubmit"+"&permissions="+values+"&id="+${requestScope.id}; } } --> </script> </head> <body> <c:forEach var='parent' items='${requestScope.parentVector}' varStatus='i'> <c:if test="${fn:indexOf(requestScope.allMenu,parent.id)!=-1}"> <table border="0" width="400"> <tr> <td> <div align="left" > <c:choose> <c:when test="${fn:indexOf(requestScope.userPermission,parent.id)!=-1}"> <input type="checkbox" value="${ parent.id }" name='${ i.index }' onclick="selectKind(this)" checked>${ parent.moduleName } </c:when> <c:otherwise> <input type="checkbox" value="${ parent.id }" name='${ i.index }' onclick="selectKind(this)" >${ parent.moduleName } </c:otherwise> </c:choose> </div> </td> </tr> </table> </c:if> <div id='sub_${i.index}' style="padding-left:20px"> <table border="0" width="300"> <c:forEach var='child' items='${requestScope.childVector}' varStatus='j'> <c:if test="${fn:indexOf(requestScope.allMenu,parent.id)!=-1&&child.parentId==parent.id}"> <tr> <td> <c:choose> <c:when test="${fn:indexOf(requestScope.userPermission,child.id)!=-1}"> <input type="checkbox" value="${child.id }" name='${ j.index }' checked>${child.moduleName} </c:when> <c:otherwise> <input type="checkbox" value="${child.id }" name='${ j.index }' >${child.moduleName} </c:otherwise> </c:choose> </td> </tr> </c:if> </c:forEach> </table> </div> </c:forEach> <input title="修改权限" class="button" onclick="getCheckedBox();" type="button" value="提 交"> <input title="返回" class="button" onclick="window.location.href='user.portal?action=list';" type="button" value="返 回"> </body> </html>
注意window.location.href="user.portal?action=viewUserPermissionSubmit"+"&permissions="+values+"&id="+${requestScope.id};
这里values就是修改后的菜单id,形如:[2][3][5]...把它传到后台修改User表的权限字段并刷新页面就可以显示修改后的菜单了。
发表评论
-
PropertyMessageResources实现本地化
2010-03-01 12:16 2758public org.apache.struts.util.P ... -
在Struts1.x中使用net.sf.struts.saif.SAIFSpringPlugin配置Interceptor(拦截器)
2010-01-21 11:05 3876几个月前,Struts2发布,这个版本较struts1.x ... -
登录时“记住用户名”
2010-01-14 14:42 9407登录时需要用户“记住 ... -
导出数据到Excel
2009-08-12 09:46 1984HSSFWorkbook wb = new HSSFWor ... -
socket发送数据
2009-08-12 09:40 1731String date = request.getPara ... -
ActionMessages的使用&cookies操作验证码
2009-08-11 15:55 1842ActionMessages errors = new Act ... -
<html:select>的使用
2009-08-11 15:34 2910一般使用: <html:select property= ... -
比较笨的分页方法
2009-08-11 12:20 1778Java: sql += " order b ... -
使用<bean:define >取到bean:write的值,并赋值给java变量
2009-08-11 12:15 7911<logic:iterate id="it ... -
<bean:write> 用法
2009-08-11 11:55 12003bean:write相当于<%=reques ... -
注册的在线人数/统计在线人数/网站总访问量
2009-08-05 17:24 2833java LoginAction: request.getSe ... -
调用外部程序的方法
2009-08-03 17:29 2284if("calculator".equal ... -
下载文件
2009-08-03 16:10 1916if("download".equals( ... -
把图片写入数据库
2009-08-03 16:05 2096System.out.println("====== ... -
多文件上传,同时改名,并生成缩略图
2009-08-03 16:03 4663html: <script> function ... -
POI导出到Excel
2009-08-03 14:33 2121if (billForm.getButtonName() != ... -
对账文件导出
2009-08-03 14:27 2205if ("datafile".equals ... -
用户登录完整代码
2009-08-03 11:45 2738java action: LoginForm form=(Lo ... -
验证码
2009-08-03 11:37 1778生成验证码图片的Servlet类 import java. ... -
创建session
2009-08-03 11:04 3193java action: HttpSession sessio ...
相关推荐
演示了包括:权限控制、超大附件文件上传、EasyUI基本组件使用等等功能,具体请自行看本示例演示功能 SSHE框架环境需求:JAVA环境:JDK7+;数据库环境:oracle10g+/sqlserver2000+/mysql5+;WEB容器环境:jetty6+/...
一种基于Vue.js和Django的权限控制方法及系统.pdf一种基于Vue.js和Django的权限控制方法及系统.pdf一种基于Vue.js和Django的权限控制方法及系统.pdf一种基于Vue.js和Django的权限控制方法及系统.pdf一种基于Vue.js和...
这是一款基于Winform权限控制系统源码,基本上实现了权限管理系统的功能,对于新手来说,还是比较有学习价值的,值得推荐一下,感兴趣的朋友可以下载学习一下。 二、功能介绍 1、用户管理 2、组管理 3、用户授权 ...
权限控制,js控制权限控制,js控制权限控制,js控制权限控制,js控制权限控制,js控制权限控制,js控制权限控制,js控制权限控制,js控制js控制权限控制,js控制权限控制
C# winform 权限控制 包括角色 用户 权限设置,拿出来共享
做到代码低侵入度,在开发时不需要太多关注数据权限控制,可以在应用开发完成后,通过对表和视图定义权限控制策略,然后绑定到登录用户或功能URI上来进行数据权限控制。数据访问控制需要调整时,只需要修改定义的...
java的一个权限控制的插件,有源码,可以作为一个参考
springboot springsecurity动态权限控制,实现数据库动态管理菜单权限
权限控制 好的设计是成功的一半 本文介绍权限控制模块
帆软报表详细设计,跨境电商数据权限控制,有详细的存储过程,权限控制方案
Struts2拦截器实现权限控制demo,我感觉对初学者还是有一定帮助的
js控制js控制权限控制js控制js控制权限控制
web业务系统权限控制
原来写的一个SSM项目 超市购物系统 包含权限控制 可以运行
SpringSecurity+OAuth2+JWT分布式权限控制
spring+shiro 增删改查权限控制,其中包括用户管理、角色管理、权限管理
使用Struts2拦截器制作的一些关于权限控制的代码,给同行朋友们参考、学习下。
自己写的简易用户权限控制程序,结合了asp.net内置对象和消息头。很好的资源哦。
非常详细的Spring Security 权限控制中文API
树状权限控制 左侧树状控制 直接参考可使用