我的操作类包含以下操作方法:
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 结果不起作用。我正在尝试转发到同一操作类中的操作方法。
它给了我无限递归检测到的异常,我猜它一次又一次变得无效。 token ,我可以为此转发禁用 token 拦截器吗?
最佳答案
以下任何选项都应该有效:
(首选选项)重定向到另一个操作类。让拦截器不应用于该操作类。
在您的
TokenInterceptor
中,您可以根据参数检查它是否是无效 token :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 }
关于java - Struts 2结果类型redirectAction转发到通配符操作方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19857474/