struts2 中一个值得参考的小地方
2008-09-30 18:26
218 查看
在struts2中,今天看到一个简单的做权限的方法,小结如下,也就是最传统的角色的做法,比如:
1 定义各个菜单项的编码,
<s:set name="ADBANNER_CREAT" value="101"/>
<s:set name="ADBANNER_UPDATE" value="102"/>
<s:set name="ADBANNER_DELETE" value="103"/>
<s:set name="ADBANNER_LOOK" value="104"/>
<s:set name="ADVERTISMENT_CREAT" value="201"/>
<s:set name="ADVERTISMENT_UPDATE" value="202"/>
<s:set name="ADVERTISMENT_DELETE" value="203"/>
如此类推
2 之后将每个用户的角色保存起来,比如userid=1的角色可以为101,203,202
3 在调用每个菜单项的时候,这样判断,
<s:if test="@com.kemp.util.confighand@handleValidate('30',#session.rolecontent) == 1">
p = new createPanel('adveradmin','客户管理');
.........
这里注意<s:if test="@com.kemp.util.confighand@handleValidate('30',#session.rolecontent) == 1">的写法哦
这里将之前用户登陆后,提取数据库中的一长串101,203,202,放到rolecontent的session中去了.之后调用
com.kemp.util.confighand类中的handleValidate方法去判断,判断当前用户的权限中是否包含30系列的权限,如果等于1的话,则继续做下面的事情.
/**
* 判断allconstant中是否有constant中指定的权限
* @param constant 表示某个特定的权限
* @param allConstant 表示有某用户目前有的权限,用,隔开
* @return
*/
public static int handleValidate(String constant, String allConstant){
int flag = 0;
String con[] = allConstant.split(",");
for(int i=0;i<con.length;i++){
if(con[i].startsWith(constant)){
flag = 1;
break;
}
}
return flag;
}
1 定义各个菜单项的编码,
<s:set name="ADBANNER_CREAT" value="101"/>
<s:set name="ADBANNER_UPDATE" value="102"/>
<s:set name="ADBANNER_DELETE" value="103"/>
<s:set name="ADBANNER_LOOK" value="104"/>
<s:set name="ADVERTISMENT_CREAT" value="201"/>
<s:set name="ADVERTISMENT_UPDATE" value="202"/>
<s:set name="ADVERTISMENT_DELETE" value="203"/>
如此类推
2 之后将每个用户的角色保存起来,比如userid=1的角色可以为101,203,202
3 在调用每个菜单项的时候,这样判断,
<s:if test="@com.kemp.util.confighand@handleValidate('30',#session.rolecontent) == 1">
p = new createPanel('adveradmin','客户管理');
.........
这里注意<s:if test="@com.kemp.util.confighand@handleValidate('30',#session.rolecontent) == 1">的写法哦
这里将之前用户登陆后,提取数据库中的一长串101,203,202,放到rolecontent的session中去了.之后调用
com.kemp.util.confighand类中的handleValidate方法去判断,判断当前用户的权限中是否包含30系列的权限,如果等于1的话,则继续做下面的事情.
/**
* 判断allconstant中是否有constant中指定的权限
* @param constant 表示某个特定的权限
* @param allConstant 表示有某用户目前有的权限,用,隔开
* @return
*/
public static int handleValidate(String constant, String allConstant){
int flag = 0;
String con[] = allConstant.split(",");
for(int i=0;i<con.length;i++){
if(con[i].startsWith(constant)){
flag = 1;
break;
}
}
return flag;
}
相关文章推荐
- struts2 中一个值得参考的小地方
- MySQL处理千万级数据查询、分页(有些地方值得参考,不过原作者好像走歪了)
- base64 中一个值得记住的地方
- 智能指针变量做函数参数的一个值得注意的地方
- 值得参考的css理论:OOCSS、SMACSS与BEM
- 出身富贵人家到底有什么地方值得人向往?
- asp.net 揭密中的一段话,值得参考
- java多线程总结(部分地方有误,参考原文下评论)
- 编写基于DirectShow流媒体播放器程序可以值得参考的资料和源码例子
- 值得参考的有特色的国外电子商务网站[转]
- 日本多是以IT数码行业发展较快,他们的这个行业信息管理有什么值得我们学习的地方?
- 西安房价在下个月内什么地方最值得买?——中篇
- spring-boot-2.0.3不一样系列之源码篇 - run方法(二)之prepareEnvironment,绝对有值得你看的地方
- 一些值得参考借鉴学习的网站
- Objective-C中一些 值得程序员注意的地方
- struts2 bean标签以及其他标签需要注意的地方
- C++学习笔记(一) 补充篇 基础语法 — 参考慕课网 值得推荐!
- 文章解决问题的“思路”很不错,值得参考
- Xfire发布Web Service,学习教程,值得参考哦!