おはよう!Struts 2の検証 - エラーメッセージのクリア
私はthis websiteの指示に従ってStruts2のXML検証を使用しました。
問題は、送信ボタンを2回クリックしたときです。エラーメッセージも2回表示されます...
私の質問は...新しいエラーメッセージのセットに対応するために別のアクションが処理される前に最初のエラーメッセージをクリアする方法です。
事前にありがとうございます。
おはよう!Struts 2の検証 - エラーメッセージのクリア
私はthis websiteの指示に従ってStruts2のXML検証を使用しました。
問題は、送信ボタンを2回クリックしたときです。エラーメッセージも2回表示されます...
私の質問は...新しいエラーメッセージのセットに対応するために別のアクションが処理される前に最初のエラーメッセージをクリアする方法です。
事前にありがとうございます。
デフォルトのスタックにバリデータインターセプタがあります。あなたはそれを使用する必要があり、それを使用することは非常に簡単です。あなたのアクションクラスでpublic void validate()という名前でメソッドを作るだけです。そのvalidate()の中で、ゲッター&を使ってフィールドにアクセスし、必要な検証をそれらのフィールドに置くことができます。
また、この実装では、addFieldErrorメソッドで設定したメッセージだけが表示され、それ以前に保持されていたメッセージはすべて削除されるため、複数のメッセージが表示される心配はありません。
注:アクションの変数は、このインターセプタが呼び出された時点で設定されていないため、validate()で変数のgetterを使用してください。
ここには非常に良いチュートリアルへのリンクがあります。
http://www.vaannila.com/struts-2/struts-2-example/struts-2-validation-example-1.html
あなたがscope="prototype"
として、あなたのBeanを定義する必要が春の統合を使用している場合は、すべての要求のためにあなたの行動の新しいインスタンスを取得します。 springのデフォルトスコープはsingletonです。
すべてのアクションでこれを行うことをお勧めします。
validate="true"
をフォームタグから削除します。
validate = falseのままにすると、送信アクション時に検証XMLが呼び出されます。
各送信クリックでメッセージを消去するには、jspで表を使用している場合は、表をフォーム外に保持します。それが動作します。
アプリケーションはSpringと統合されましたか? – lschin
通常、エラーメッセージは要求スコープに対してのみ存在します。したがって、エラーメッセージをクリアする必要はありません。より多くの情報を提供する必要があります。 – Quaternion