0

我的动作类包含以下动作方法:

public class MyActionClass extends ActionSupport {

 public String valid(){
//
}

 public String invalid(){
//
}

}

我的配置:

<action name="*MyActionClass" class="action.MyActionClass" method="{1}">
            <interceptor-ref name="token"/>
            <interceptor-ref name="basicStack"/>
            <result type="chain" name="invalid.token" type="redirectAction">
                <param name="actionName">MyActionClass</param>
                <param name="method">invalid</param>
            </result>
            <result name="Completed">/example/valid.jsp</result>
        </action>

我对 invalid.token 结果的转发不起作用。我正在尝试转发到同一操作类中的操作方法。

它给了我无限递归检测到的异常,我猜它一次又一次地变得 invalid.token,我可以为此转发禁用令牌拦截器吗?

4

1 回答 1

2

以下任何选项都应该起作用:

  1. (首选选项)改为重定向到另一个操作类。让拦截器不应用于该动作类。

  2. 在您的TokenInterceptor中,您可以根据参数检查它是否是无效令牌:

    Map params = ActionContext.getContext().getParameters();
    if (params.containsKey("method") && params.get("method").equals("invalid")){
       invocation.invoke(); //Pass on the invocation 
    } else {
       //Do your interceptor logic here
    }
    
于 2013-11-08T11:14:22.790 回答