Struts 2结果类型redirectAction转发到通配符动作方法

时间:2013-11-08 11:02:26

标签: java struts2

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

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结果无效。我正试图在同一个动作类中转发动作方法。

它给了我无限递归检测到的异常,我猜它一次又一次无效。我可以为这个转发禁用令牌拦截器吗?

1 个答案:

答案 0 :(得分: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
    }