我的struts 2 xml文件中有2个动作映射,它映射到同一个动作类的2个方法,如下所示
<action name="action1" class="com.web.action.MyAction method="myMethod1">
<result>success1.jsp</result>
</action>
<action name="action2" class="com.web.action.MyAction method="myMethod2">
<result>success2.jsp</result>
</action>
我还重写了ActionSupport类的validate()方法。现在我希望这个validate方法只应该针对action1而不是针对action2执行。有办法吗?我知道我可以将2个方法放在单独的动作类中,这样可行。
答案 0 :(得分:1)
“validation”拦截器使用与“prepare”拦截器相同的前缀方法实用程序。
“验证”拦截器将调用特定于方法的验证方法;对于您的具体示例:
public void validateMyMethod1() { ... }
public void validateMyMethod2() { ... }
请参阅"validation" interceptor docs,但为了更好/更详细,请"prepare" interceptor docs。
答案 1 :(得分:0)
到目前为止,这是不可能直接告诉我们应该调用哪个动作调用validate方法,可能的解决方案很少
myCustomvalidation
,您可以从myMethod1
方法内部调用该方法。