1

我的 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() 方法。现在我希望这个验证方法应该只对action1执行,而不是对action2执行。有没有办法这样做?我知道我可以将这两种方法放在单独的动作类中,这将起作用。

4

2 回答 2

1

“验证”拦截器使用与“准备”拦截器相同的前缀方法实用程序。

“验证”拦截器将调用特定方法的验证方法;对于您的具体示例:

public void validateMyMethod1() { ... }
public void validateMyMethod2() { ... }

请参阅“验证”拦截器文档,但要获得更好/更多详细信息,请参阅“准备”拦截器文档

于 2012-09-07T12:40:28.873 回答
0

到目前为止,这不可能直接告诉我们应该在哪个动作调用时调用 validate 方法,几乎​​没有可能的解决方案

  1. 按照您的建议将它们移动到单独的类中。
  2. 切换到编程验证方法,例如创建一个相同的方法myCustomvalidation,您可以从内部方法调用该myMethod1方法。
于 2012-09-07T07:07:40.633 回答