以前一直对Struts2的自定义拦截器(intercepter)不是很清楚,今天仔细研究了下,终于搞懂了,现在记录对拦截器的总结如下:
1:自定义拦截器的作用一般就是用来实现系统权限控制比较多;
2:自定义拦截器的实现可以实现Intercepter接口,也可以继承AbstractInterceptor类,重写其intercept方法;
3:实现权限管理的用法: 首先在intercepter()方法中从session中获取登陆的用户,判断其是否有权限访问相应的action的方法,如果有该权限则:
String result = invocation.invoke();
return result;
注意这里返回的是result,当然也可以简写为:return invocation.invoke();
这里为什么要这样返回呢? 答案是为了正常的返回调用其他的intercepter(其实这里我也不是很清楚)
当判断用户没有相应的权限访问要访问的Action的相应的方法的时候这里就可以直接返回一个结果集对应的字符串了: 比如 return "error";他会
去相应的结果集里面找对于的结果集(这种一般就是全局结果集了),这里如果判断出没有权限访问的时候就不用调用: invocation.invoke了。