Java Struts 2结果类型将操作重定向到通配符操作方法
My action类包含以下操作方法:Java Struts 2结果类型将操作重定向到通配符操作方法,java,struts2,Java,Struts2,My action类包含以下操作方法: public class MyActionClass extends ActionSupport { public String valid(){ // } public String invalid(){ // } } 我的配置: <action name="*MyActionClass" class="action.MyActionClass" method="{1}"> <interceptor-
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>
MyActionClass
无效的
/示例/valid.jsp
我的转发无效。令牌结果无效。我试图在同一个action类中转发到action方法
它给了我无限递归检测到的异常,我猜它正在变得无效。令牌一次又一次,我可以为这个转发禁用令牌侦听器吗?以下任何选项都应该有效:
令牌拦截器中,您可以根据以下参数检查该令牌是否无效:
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
}
通配符的使用是罪魁祸首,因此在重定向时使用相同的拦截器堆栈,从而导致无限递归。这将导致
无效。配置令牌。