您的位置:首页 > 编程语言 > Java开发

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;

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: