struts2如何进行权限控制

2014-10-19 03:30:05 · 作者: · 浏览: 36

实现一个简单的拦截器 登陆以后存一个参数ssid(用户ID) 到 session里
拦截器里面的”noid” 你只要在struts.xml中设置一个全局的转发错误的页面或者返回到登陆页面就好了:
如:(



/noid.jsp



)


拦截器代码:
package com.jihe.interceptor;


import java.util.Map;


import com.opensymphony.xwork2.ActionInvocation;
import com.opensymphony.xwork2.interceptor.AbstractInterceptor;


public class MyInterceptor extends AbstractInterceptor {


@Override
public String intercept(ActionInvocation invocation) throws Exception {


Map session = invocation.getInvocationContext().getSession();


if (null != session.get(“ssid”)) {


return invocation.invoke();


} else {


return “noid”;


}
}
}


然后在sturt.xml中配置拦截器(我设置的是全局的,如果你用可能会出现问题,因为你设置这个拦截器以后在登陆时的ssid肯定是null,所以要把不需要拦截器验证的action放到别的package里如:






class=”com.jihe.interceptor.MyInterceptor” />











interceptor-stack跟interceptor-ref的区别是什麽
interceptor-stack是一堆拦截器组成的一个拦截器栈。也可以当拦截器使用。
interceptor-ref是指定某个action使用哪一个拦截器,可以是一个interceptor,也可以是一个interceptor-stack。
将上述拦截器设定为默认拦截器:
<default-interceptor-ref name=”mydefault”/>