根据用户权限,动态显示用户菜单
2017-04-10 17:34
579 查看
用户权限userPermission,比如[1][2][3][4][5][6][7][8][9][10],这里的数字对应着菜单id号,所有菜单allPermission,比如[1][2][3][4][5][6][7][8][9][10][11][12][13][14]...
这样只要修改userPermission里的数字,就能动态显示菜单,记得刷新一下。
viewUser.jsp
左侧菜单页面left.jsp
获取用户对应的系统应用菜单
这样只要修改userPermission里的数字,就能动态显示菜单,记得刷新一下。
viewUser.jsp
<%@ page contentType="text/html; charset=UTF-8"%> <%@ taglib uri="/WEB-INF/struts-bean.tld" prefix="bean"%> <%@ taglib uri="/WEB-INF/struts-html.tld" prefix="html"%> <%@ taglib uri="/WEB-INF/struts-logic.tld" prefix="logic"%> <% String allPermission=(String)request.getAttribute("allMenu"); %> <% String userPermission=(String)request.getAttribute("userPermission"); %> <html:html xhtml="true"> <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 src="js/jquery-1.3.2.min.js" type="text/javascript"></script> <script type="text/javascript"> $(document).ready(function(){ }); </script> <script language="JavaScript" type="text/javascript"> <!-- function selectKind(the){ var obj = the; var container = document.getElementById("kind_" + obj.name); for(var i=0;i<container.getElementsByTagName("input").length;i++) { //container.getElementsByTagName("input")[i].disabled = obj.checked; container.getElementsByTagName("input")[i].checked = obj.checked;; } } function getCheckedBox(){ //var container = document.getElementById("checks"); 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+"]"; } } //alert(values); window.location.href("userManage.portal?action=sendUpdate"+"&permissions="+values+"&id="+document.forms[0].id.value); } --> </script> </head> <body> <html:form action="/userManage.portal"> <html:hidden property="action" /> <html:hidden property="id" /> <table border="0" cellpadding="0" cellspacing="0" width="80%" align="center"> <logic:iterate id="module" name="parentVector" type="com.worthtech.app.bean.Module" indexId="index"> <% int i = ((java.lang.Integer) pageContext.findAttribute("index")).intValue(); %> <% if(allPermission.indexOf("["+module.getId()+"]")!=-1){%> <table border="0" width="400"> <tr> <td> <div align="left" > <% if(userPermission.indexOf("["+module.getId()+"]")!=-1) {%> <input type="checkbox" value="<%=module.getId() %>" name=<%=i %> onclick="selectKind(this)" checked><%=module.getModuleName()%> <%}else{ %> <input type="checkbox" value="<%=module.getId()%>" name=<%=i %> onclick="selectKind(this)"><%=module.getModuleName()%> <%} %> </div> </td> </tr> </table> <%}%> <div id=<%= "kind_"+i %> style="padding-left:20px"> <table border="0" width="300"> <logic:iterate id="childModule" name="childVector" type="com.worthtech.app.bean.Module"> <% if(allPermission.indexOf("["+childModule.getId()+"]")!=-1&&childModule.getParentId().intValue()==module.getId().intValue()){ %> <tr> <td> <% if(userPermission.indexOf("["+childModule.getId()+"]")!=-1) {%> <input type="checkbox" value="<%=childModule.getId()%>" name=<%=i %> checked><%=childModule.getModuleName()%> <%}else{ %> <input type="checkbox" value="<%=childModule.getId()%>" name=<%=i %> ><%=childModule.getModuleName()%> <%} %> </td> </tr> <% } %> </logic:iterate> </table> </div> </logic:iterate> </table> <input title="修改权限" class="menuList" onclick="getCheckedBox();" type="button" value="提 交"> <input title="返回" class="menuList" onclick="window.location.href('userManage.portal?action=listUser');" type="button" value="返 回"> </html:form> </body> </html:html>
package com.worthtech.app.action; import java.util.*; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.apache.commons.lang.StringUtils; import org.apache.struts.action.ActionForm; import org.apache.struts.action.ActionForward; import org.apache.struts.action.ActionMapping; import org.apache.struts.action.ActionMessages; import org.hibernate.criterion.DetachedCriteria; import org.hibernate.criterion.Order; import org.hibernate.criterion.Restrictions; import com.worthtech.app.bean.Module; import com.worthtech.app.bean.User; import com.worthtech.app.form.UserForm; import com.worthtech.app.service.BaseService; import com.worthtech.app.service.ModuleService; import com.worthtech.app.util.Constant; import com.worthtech.app.util.PaginationSupport; public class UserAction extends BaseAction { private BaseService baseService; private ModuleService moduleService; public ActionForward execute(ActionMapping mapping, ActionForm actionForm, HttpServletRequest request, HttpServletResponse response) { UserForm form=(UserForm)actionForm; ActionMessages errors = new ActionMessages(); System.out.println("form.getAction()="+form.getAction()); System.out.println("Parameter="+request.getParameter("action")); String action=request.getParameter("action"); if("listUser".equals(action)){ System.out.println("----------------list user -----------------"); if(request.getParameter("queryAll")!=null){ form.close(); initUserListAll(mapping,form,request,response); return mapping.findForward("listUser"); } initUserList(mapping,form,request,response); return mapping.findForward("listUser"); } if("delete".equals(action)){ System.out.println("----------------delete user -----------------"); String id=request.getParameter("id"); User instance=(User)this.getBaseService().get("User", id); this.getBaseService().delete(instance); System.out.println("-------delete success------------"); initUserList(mapping,form,request,response); return mapping.findForward("listUser"); } if("update".equals(action)){ System.out.println("----------------update user -----------------"); String id=request.getParameter("id"); form.setId(id); User instance=(User)this.getBaseService().get("User", id); // 初始化菜单,根据MenuLevel=0代表根目录从0开始 List allModuleList = this.getModuleService().getModuleTree(Integer.parseInt(instance.getMenuLevel()));//1实体终端交易,2用户管理 Iterator menu = allModuleList.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()+"]"; } // System.out.println("allPermission="+allPermission); // System.out.println("userPermission="+user.getTelephone()); request.setAttribute("parentVector", parentV);//所以的父菜单 request.setAttribute("childVector", childV);//所以的子菜单 request.setAttribute("allMenu", allMenu);//所有菜单(String型) request.setAttribute("userPermission", instance.getPermission());//当前用户菜单(String型) return mapping.findForward("viewUser"); } if("sendUpdate".equals(action)){ System.out.println("----------------sendUpdate user -----------------"); // String id=form.getId(); String id=request.getParameter("id"); System.out.println("id="+id); String permissions=request.getParameter("permissions"); System.out.println("permissions="+permissions); User instance=(User)this.getBaseService().get("User", id); instance.setPermission(permissions); this.getBaseService().update(instance); System.out.println("---------------update success----------------------"); initUserList(mapping,form,request,response); return mapping.findForward("listUser"); } return mapping.findForward("wait"); } public BaseService getBaseService() { return baseService; } public void setBaseService(BaseService baseService) { this.baseService = baseService; } public void initList(HttpServletRequest request,UserForm form,DetachedCriteria detachedCriteria){ PaginationSupport pagination=this.getBaseService().findPageByCriteria(detachedCriteria, Constant.PAGESIZE, form.getStartIndex()); List list = pagination.getItems(); // System.out.println("billPayList.size="+list.size()); request.setAttribute("list", list); request.setAttribute("pagination", pagination); // System.out.println("-----------------执行完毕!!!---------------"); } public void initUserList(ActionMapping mapping, UserForm form, HttpServletRequest request, HttpServletResponse response){ DetachedCriteria detachedCriteria = DetachedCriteria.forClass(User.class); String keyword_0=form.getSearchName(); if(StringUtils.isNotEmpty(keyword_0)){ detachedCriteria.add(Restrictions.like("userName", "%"+keyword_0+"%")); } String keyword_1=form.getSearchDepartment(); if(StringUtils.isNotEmpty(keyword_1)){ if(keyword_1.equals("全部")){//全部 }else{ detachedCriteria.add(Restrictions.like("address", "%"+keyword_1+"%")); } } // 排序 detachedCriteria.addOrder(Order.desc("id")); // detachedCriteria.addOrder(Order.desc("addTime")); initList(request,form,detachedCriteria); } public void initUserListAll(ActionMapping mapping, UserForm form, HttpServletRequest request, HttpServletResponse response){ DetachedCriteria detachedCriteria = DetachedCriteria.forClass(User.class); // 排序 detachedCriteria.addOrder(Order.desc("id")); // detachedCriteria.addOrder(Order.desc("addTime")); initList(request,form,detachedCriteria); } public ModuleService getModuleService() { return moduleService; } public void setModuleService(ModuleService moduleService) { this.moduleService = moduleService; } }
左侧菜单页面left.jsp
<%@ page contentType="text/html;charset=UTF-8"%> <%@ taglib uri="/WEB-INF/struts-bean.tld" prefix="bean"%> <%@ taglib uri="/WEB-INF/struts-html.tld" prefix="html"%> <%@ taglib uri="/WEB-INF/struts-logic.tld" prefix="logic"%> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>LEFT</title> <link rel="stylesheet" href="css/style.css" type="text/css"> <script language="JavaScript"> <!-- function doExit(){ if (confirm("您确定要退出本系统吗?")){ window.open("login.portal?action=logout","_parent",""); } } //--> </script> <script language="JavaScript"> var w=200; function closenavi() { w-=200; if (w>-10) {window.parent.testframeset.cols = ''+w+',*';repeat=setTimeout("closenavi()",10);} else {clearTimeout(repeat);w=200;} } function loginOutPage() { document.forms[1].SIGN_OFF.click(); } function initIt(){ divCount = document.all.tags("DIV"); for (i=0; i<divCount.length; i++) { obj = divCount(i); if (obj.className == "child" || obj.className == "child1") obj.style.display = "none"; } } function expandIt(el) { obj = eval("page" + el); obj2 = eval("main" + el); if (obj.style.display == "none") { obj.style.display = "block"; } else { obj.style.display = "none"; } } onload = initIt; var judge=0; function expandall(o) { if (judge==0) {divCount2 = document.all.tags("DIV"); for (i=0; i<divCount2.length; i++) { obj2 = divCount2(i); if (obj2.className == "child" || obj.className == "child1" || obj2.style.display == "none") {obj2.style.display = "block";} if (obj2.className == "menu") { //obj2.all.tags('img')[0].src='images/treeimg/tminus.gif'; obj2.all.tags('img')[0].src='images/openfolder1.gif'; } } judge=1; o.src='images/icon-closeall.gif'; o.alt='全部折叠'; } else {divCount2 = document.all.tags("DIV"); for (i=0; i<divCount2.length; i++) { obj2 = divCount2(i); if (obj2.className == "child" || obj.className == "child1" || obj2.style.display == "block") {obj2.style.display = "none";} if (obj2.className == "menu") { obj2.all.tags('img')[0].src='images/folder1.gif'; } } judge=0; o.src='images/icon-expandall.gif'; o.alt='全部展开'; } } function quit(form) { window.close() } function loginOutPage() { document.forms[0].SIGN_OFF.click(); } </script> </head> <body bgcolor="#D8DADA" class="bodyTop"> <logic:iterate id="module" name="parentVector" type="com.worthtech.app.bean.Module" indexId="index"> <% int i = ((java.lang.Integer) pageContext.findAttribute("index")).intValue(); %> <div id=<%="main" + i%> class="title" onClick="expandIt(<%="" + i%>); return false"> <table class="TableLeftTop" style="margin-top: 10px" width="138" border="0" cellspacing="0" cellpadding="4"> <tr> <td background="images/LeftMenuBack.jpg"> <div align="center"> <%=module.getModuleName()%> </div> </td> </tr> </table> </div> <div id=<%="page" + i%> class="child"> <table class="TableLeftView" width="140" border="0" cellspacing="0" cellpadding="0"> <logic:iterate id="childModule" name="childVector" type="com.worthtech.app.bean.Module"> <% if(childModule.getParentId().intValue()==module.getId().intValue()){ %> <tr> <td width="44"> <div align="right"> <img src="images/t.gif" width="19" height="20"> </div> </td> <td width="161"> <a href=<%=childModule.getActionUrl()%> target="mainFrame"><%=childModule.getModuleName()%></a> </td> </tr> <% } %> </logic:iterate> </table> </div> </logic:iterate> <table style="margin-top: 10px" width="140" border="0" align="center" cellpadding="2" cellspacing="0"> <tr> <td> <div align="center"> <a href="#" onclick="doExit();"> <img src="images/ico01.gif" width="65" height="15" border="0" class="MouseOver"> </a> </div> </td> <td> <div align="center"> <a href="login.portal?action=password" target="mainFrame"> <img class="MouseOver" src="images/ico02.gif" width="65" height="15" border="0"> </a> </div> </td> </tr> </table> </body> </html>
获取用户对应的系统应用菜单
// 获取用户对应的系统应用菜单 List allModuleList = this.getModuleService().getModuleTree( Integer.parseInt(user.getMenuLevel()));//0代表根菜单 Iterator menu = allModuleList.iterator(); Vector parentV = new Vector(); Vector childV = new Vector(); Module m; while (menu.hasNext()) { m = (Module) menu.next(); if(user.getPermission().indexOf("["+m.getId()+"]")!=-1){ if (m.getParentId().intValue() == 0) { parentV.add(m); } else { childV.add(m); } } } request.getSession().setAttribute("parentVector", parentV); request.getSession().setAttribute("childVector", childV); // System.out.println("--------------------获取用户对应的系统应用菜单结束-------------------------");
相关文章推荐
- 052医疗项目-模块五:权限设置-实现根据用户显示不同的菜单
- 动态创建菜单,menustrip,根据权限显示菜单,控制菜单可用,反射,给窗体传值,反射对象传值,public static Object CreateInstance ( Type type, pa
- 动态创建菜单,menustrip,根据权限显示菜单,控制菜单可用,反射,给窗体传值,反射对象传值,public static Object CreateInstance ( Type type, params Object[] args )
- 动态创建菜单,menustrip,根据权限显示菜单,控制菜单可用,反射,给窗体传值,反射对象传值【转】
- Asp.net web 根据不同的用户权限显示不同的菜单
- [转载内容]动态创建菜单,menustrip,根据权限显示菜单,控制菜单可用,反射,给窗体传值,反射对象传值,public static Object CreateInstance ( Type type, params Object[] args )
- OA权限模块根据用户权限显示不同的菜单
- 用户权限管理及动态菜单的实现
- 一步步教你如何用疯狂.NET架构中的通用权限系统 -- 如何控制用户显示的菜单权限
- C/S模式根据权限基于反射机制实现动态生成菜单
- ASP 根据用户权限判断显示的列标题
- 如何根据用户权限屏蔽或显示SAP的订单中的成本显示
- 一步步教你如何用疯狂.NET架构中的通用权限系统 -- 如何控制用户显示的菜单权限
- SharePoint 2010根据不同的用户权限显示不同的导航
- asp.net 2.0下根据权限动态控制菜单、动态配置导航信息
- Sharepoint 2010 根据用户权限隐藏Ribbon菜单
- Sharepoint 2010 根据用户权限隐藏Ribbon菜单(利用css)
- ABAP选择屏幕:根据用户选择动态显示屏幕
- 用Taglib实现--根据权限动态显示菜单栏
- 页面根据XML里权限动态生成菜单