权限之加载权限资源
2015-12-01 12:07
375 查看
用户登录成功进入如下的页面:
主要是left.jsp权限菜单的加载
核心代码如下:
Jsp:
注意:
1. value="#application.topPrivileges",从全局范围内获权限数据(通过自定义InitListener,启动tomact就放入到全局缓存中,因为这些权限资源基本不变;讲在《权限之缓存》讲到)。
2.test="#session.user.hasPrivilegeByName(name)",校验用户是否存在,我们在实体里添了该验证方法
3.其中包含树的知识。
User:
即可获得上图。
小结:
1.构建树的思路就是简单的<ul><li></li></ul>实现树形结构的。
2.加载权限菜单思路就时从缓存中查询该用户拥有的权限,然后在循环匹配所有权限,即可得到我们可操作的菜单和按钮。
敬请关注一篇《权限之路径拦截》
主要是left.jsp权限菜单的加载
核心代码如下:
Jsp:
</head> <bodystyle="margin: 0"> <divid="Menu"> <ulid="MenuUl"> <%--显示一级菜单 --%> <s:iteratorvalue="#application.topPrivileges"> <s:iftest="#session.user.hasPrivilegeByName(name)"> <liclass="level1"> <divonClick="menuClick(this);" class="level1Style"> <imgsrc="style/images/MenuIcon/${id}.gif" class="Icon" /> ${name} </div> <ulstyle="" class="MenuLevel2" id="aa"> <%--显示二级菜单 --%> <s:iteratorvalue="children"> <s:iftest="#session.user.hasPrivilegeByName(name)"> <liclass="level2"> <divclass="level2Style"> <imgsrc="style/images/MenuIcon/${id}.gif" /> <atarget="right"href="${pageContext.request.contextPath}${url}.action">${name}</a> </div> </li> </s:if> </s:iterator> </ul> </li> </s:if> </s:iterator> </ul> </div> </body> <scripttype="text/javascript"> functionmenuClick(nemu){ $(nemu).next().toggle(); } </script>
注意:
1. value="#application.topPrivileges",从全局范围内获权限数据(通过自定义InitListener,启动tomact就放入到全局缓存中,因为这些权限资源基本不变;讲在《权限之缓存》讲到)。
2.test="#session.user.hasPrivilegeByName(name)",校验用户是否存在,我们在实体里添了该验证方法
3.其中包含树的知识。
User:
/** * 根据名称判断用户是否有访问菜单的权限 */ publicboolean hasPrivilegeByName(String name) { //超级管理有所有的权限 if(isAdmin()) { returntrue; } ActionContext.getContext().getSession().get("user"); //普通用户要判断是否含有这个权限 for(Role role : roles) { for(Privilege priv : role.getPrivileges()) { if(priv.getName().equals(name)) { returntrue; } } } return false; }
即可获得上图。
小结:
1.构建树的思路就是简单的<ul><li></li></ul>实现树形结构的。
2.加载权限菜单思路就时从缓存中查询该用户拥有的权限,然后在循环匹配所有权限,即可得到我们可操作的菜单和按钮。
敬请关注一篇《权限之路径拦截》
相关文章推荐
- \backend\models\core\Config
- FastCgi与PHP-fpm关系
- 《从零开始学php》总结
- Android 调用系统通讯录
- 每天一个linux命令(52):scp命令
- mysql数据库时间戳与正常时间格式之间的转换
- mysql超时异常的问题查询
- Hibernate:常见错误释义
- 设计模式的六大原则
- json语法
- DTcms手机版使用余额支付 提示信息跳转到PC版的错误。以及提交订单不打开新页面
- android项目获取经纬坐标
- ___________一个简单题带来的启示____________________________
- 每天一个linux命令(51):rcp命令
- Java中equals()与hashCode()方法详解
- ajax数据传输方式实例详解
- 权限之用户登录
- 将本地的项目上传到github
- 算法之常用的距离和相似度度量
- jquery mobile用代码弹出dialog