Struts 2の1つのアクションに対してフォーム検証を無効にしたいが、残りのインターセプタスタックを引き続き実行できるようにしたい。Struts 2:defaultStackインターセプタだけから検証メソッドを除外する
私は常に実行するユーザーがログインしているかどうかを確認しインターセプタを、持っているが、(例えば、情報を入力、)いくつかのアクションのために、私はアクションのvalidate
が呼ばれるようにしたくありません。
私は次のようなものをやってみました:
<interceptors>
<interceptor name="bankingAuthenticator"
class="csc309.a4.banking.BankUserAuthenticator"/>
<interceptor-stack name="secureBanking">
<interceptor-ref name="bankingAuthenticator"/>
<interceptor-ref name="defaultStack"/>
</interceptor-stack>
</interceptors>
<default-interceptor-ref name="secureBanking"/>
<action name="Deposit!*" method="{1}" class="csc309.a4.banking.Deposit">
<result name="success">/banking/Deposit.jsp</result>
<interceptor-ref name="defaultStack">
<param name="workflow.excludeMethods">choose</param>
</interceptor-ref>
</action>
しかし、それはbankingAuthenticator
迎撃だけでなく、検証の両方に出スキップします。
修正;単一のアクションに対して 'interceptor-ref'を指定した場合、そのアクションのインターセプタを* all *指定する必要があります!あなたの答えを答えとして追加して、将来の訪問者があなたの仕事から恩恵を受けるようにしてください:) –
上記のコードとあなたが答えに書いたコードの違いは何ですか...私に教えてください..... –
@NIVESHSENGARの違いは、Depositアクションのインターセプタ名が上記のコードでは "defaultStack"で、答えの場合は "secureBanking"である点です。 – Jengerer