SpringBootのFormで使われるList
SpringBootのFormバリデーションで独自バリデーションを作成し、
適用している人にとってはよく見かけるListですが、これの使い道は知ってますか?
例)
public @interface List { TestValidate[] value(); }
一例ですが、例えば以下のようにElementTypeをTYPEにして、
複数項目で自作のバリデーションを行いたい場合に有効です。
@Target({ElementType.TYPE})
複数項目で自作のバリデーション例
例えば以下のような定義があった場合を考えてみましょう。
public class TestForm implements Serializable { private Integer test1; private Integer test2; }
ここで、「test1」と「test2」のフィールドはTYPE型の同じ種類のバリデーションを行うカラムとします。
どうすればよいでしょう?
ここでListの出番です。
以下のように定義してしまえば、2つのカラムの両方に対してバリデーションをかけることが可能になるのです。
@TestValidate.List({ @TestValidate(field = "test1"), @TestValidate(field = "test2")}) public class TestForm implements Serializable { private Integer test1; private Integer test2; }
他にも使い方は色々あると思いますが、今回は一例として使い方を挙げてみました。