1

以下のように、同じアクション クラスの 2 つのメソッドにマップする struts 2 xml ファイルに 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 に対しては実行しないようにします。そうする方法はありますか?私は2つのメソッドを別々のアクションクラスに入れることができ、これがうまくいくことを知っています.

4

2 に答える 2

1

「検証」インターセプターは、「準備」インターセプターと同じプレフィックス付きメソッドユーティリティを使用します。

「検証」インターセプターは、メソッド固有の検証メソッドを呼び出します。あなたの特定の例のために:

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

「検証」インターセプタードキュメントを参照してください。ただし、より良い/詳細については、「準備」インターセプタードキュメントを参照してください。

于 2012-09-07T12:40:28.873 に答える
0

現時点では、どのアクション呼び出しで検証メソッドを呼び出す必要があるかを直接的に伝えることはできません。可能な解決策はほとんどありません。

  1. あなたの提案に従って、それらを別のクラスに移動します。
  2. 同じメソッドを作成するようなプログラムによる検証アプローチに切り替えるとmyCustomvalidation、メソッド内からそのメソッドを呼び出すことができますmyMethod1
于 2012-09-07T07:07:40.633 に答える