您的位置:首页 > 其它

actionInvocation.invoke()是什么意思

2017-09-12 10:53 696 查看
 


actionInvocation.invoke()是什么意思

标签: interceptorsessionstrutsstringauthenticationuser
2011-12-27 14:32 26045人阅读 评论(2) 收藏 举报


 分类:

Java(51) 


关于Struts2的自定义的验证截器

[java] view
plain copy

package ch06.struts2.Interceptor;  

  

import java.util.Map;  

  

import com.opensymphony.xwork2.Action;  

import com.opensymphony.xwork2.ActionInvocation;  

import com.opensymphony.xwork2.interceptor.Interceptor;  

  

  

public class AuthenticationInterceptor implements Interceptor  {  

  

  private static final long serialVersionUID = 1L;  

   

  public static final String USER_SESSION_KEY = "UserSessionKey";  

    

  public void destroy() {}  

  

  public void init() {}  

  

  

     public String intercept(ActionInvocation actionInvocation) throws Exception {  

   //取得Session  

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

   //从Session里获得登录时保存进session的User类  

         String user = (String) session.get(USER_SESSION_KEY);  

         //判断用户名是否为空    

         boolean isAuthenticated = (null!=user);  

         if (!isAuthenticated) {//如果未通过登录验证  

  

           //下面的那个return怎么能返回登录页面  

             return Action.LOGIN;   //返回登录页面    

        

         }else{         

    // 下面的这个actionInvocation.invoke()是什么意思  

         return actionInvocation.invoke();//返回验证通过           

         }  

     }  

}  

struts.xml配置自定义的拦截器

[html] view
plain copy

<!-- 自定义验证拦截器 -->  

     <interceptors>  

   <interceptor name="Authentication"  class="ch06.struts2.Interceptor.AuthenticationInterceptor" />       

  </interceptors>   

  

<action name="Welcome">  

            <interceptor-ref name ="Authentication"/>  

            <result name="success">welcome.jsp</result>  

</action>  

 

最佳答案

actionInvocation.invoke() 就是通知struts2接着干下面的事情
比如 调用下一个拦截器 或 执行下一个Action
就等于退出了你自己编写的这个interceptor了
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: