LoginSignup
19
17

More than 5 years have passed since last update.

SpringのBean Validationで複数の入力項目にまたがってチェックする。

Last updated at Posted at 2014-11-17

本当に何て事のない手法ですが、
知らないとカスタムバリデーターの作成とか、Controller内でバリデーション実行とかやっちゃいかねないのと、
検索しても中々簡単な方法見つからなかったので書いときます。

例えば、以下のように2つのフィールドがあり、
nameに何か値が入っている時のみ、nameKanaが必須入力だとします。

java
private String name;
private String nameKana;

この場合、getterを一個でっち上げて、そっちにバリデータをいれます。

java

/**
 * バリデーション用getter
 * special thanks to tag1216 
 */
@AssertTrue(message="名前を入れたらカナも入れてちゃぶ台")
public boolean isValidNameAndKana(){
 if(StringUtils.isEmpty(this.name)){
  return true;
 }
 if(StringUtils.isEmpty(this.nameKana)){
  return false;
 }
 return true;
}

で、JSP側には、上記のgetterに対応した名前で、エラーメッセージ表示用のタグを書きます。

jsp
<form:errors path="validNameAndKana" ... />

以上です。

19
17
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
19
17