首页 > 代码库 > 自定义拦截器

自定义拦截器

 

 1  2     1、编写一个类,实现com.opensymphony.xwork2.interceptor.Interceptor
 3     2、主要实现public String intercept(ActionInvocation invocation) throws Exception{}方法
 4         该方法的返回值就相当于动作的返回值
 5         如果调用了String result = invocation.invoke();得到了动作类的返回的值。
 6     public String intercept(ActionInvocation invocation) throws Exception {
 7         //判断用户是否登录
 8         HttpSession session = ServletActionContext.getRequest().getSession();
 9         Object obj = session.getAttribute("user");
10         if(obj==null){
11             return "login";
12         }else{
13             return invocation.invoke();//调用动作方法
14         }
15     }
16     3、拦截器定义好后,一定要在配置文件中进行注册:
17         <interceptors> 只是定义拦截器,并没有起作用 
18             <interceptor name="permissionInterceptor" class="cn.itcast.interceptor.PermissionInterceptor"></interceptor>
19         </interceptors>
20     4、配置文件中的动作,要通过
21         <interceptor-ref name="permissionInterceptor"></interceptor-ref>使用该拦截器
22     注意:一旦动作中使用了自定义的拦截器,那么默认的就不起作用了。一般应该采用如下的做法:
23         <interceptor-ref name="defaultStack"></interceptor-ref>
24         <interceptor-ref name="permissionInterceptor"></interceptor-ref>
25         
26     多个动作类都要使用的话,可以通过package来进行组合。