JSFプロジェクトでBeanValidationを使用しています。前のメソッドが検証された場合にのみメソッドを検証したいという状況に遭遇しました。
例を挙げましょう:
@AssertTrue(message="{invalidCode}")
private boolean isValidActivationCode() { ... }
if(isValidActivationCode()) {
@AssertTrue(message="{alreadyActivated}")
private boolean isAlreadyActivated() { ... }
}
パラメータごとにアクティベーションコードを受け取るので、最初に検証したいと思います。無効な場合は違反となります。もしそうなら、私はそれがすでにアクティブ化されているかどうかさえ確認できません(コードが無効であるため)。それで、上記のようなことを達成することは可能ですか(ifステートメントの機能、これはうまくいかないことを私は知っていますが、それは私が達成しようとしていることを示しています)。
前もって感謝します
アップデート
Ravi Kが述べたような回避策:
@AssertTrue(message="{invalidCode}")
private boolean isValidActivationCode() { ... }
@AssertTrue(message="{alreadyActivated}")
private boolean isAlreadyActivated() { return isValidActivationCode() ? ... : true; }
疑問に思いますが、これを解決するためのクリーンな方法はありますか?すぐに誰も答えを出さない場合は、これに対する明確な解決策はないと想定し、この問題の答えとしてRaviKからの回避策を受け入れます。