actionInvocation.invoke()是什么意思

来源:互联网 发布:股票k线数据如何获得? 编辑:程序博客网 时间:2024/04/30 07:48

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

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配置自定义的拦截器

<!-- 自定义验证拦截器 -->     <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了






0 0
原创粉丝点击