質問: 以下のように、コレクションをフィールドにもったクラスのValidationをSpringで行うときに、コレクションの各要素に対して、入力チェック時のエラーメッセージを別々に変えたいという場合はどのようにすればよいでしょうか。 ``` public ParentForm { private List chlidFormList; } ``` ``` public ChildForm { private String hoge; private String fuga; } ``` 例えば、上記の状態でのChildFormのhogeに対して@NotBlankを設定すると仮定した場合に ``` 1番目のhogeは入力必須です 2番目のhogeは入力必須です 3番目のhogeは入力必須です その他のhogeは入力必須です ``` といったように、Listの何番目かによって出力されるエラーメッセージを変えるということを実現したいです。 ロジック側で直接Validatorを呼び出して入力チェックを行う方法もあるとは思いますが、ロジック側のクラスに修正をあまり加えたくはないため、できればアノテーションベースの入力チェックにしたいと考えております。 また、コレクションの中身すべてに同一のチェックを行わせるのが基本だとは思いますが、データ構造を変えることもできない状況です。 ご存知の方がいらっしゃいましたら、どうかご教授いただけないでしょうか。
回答: 普通のやり方はないと思います。 先ず、エラー発生の判断条件はtrueまたはfalse,他はない。次は、エラーメッセージの生成は変数を含めていません、つまり、変数を渡されない(annotationは変数を使えない)、1234どっちなのかは判断できません。 他の方法はあるかもしれませんけれど、綺麗な書き方ではありませんと思います。 ps:外国人です。