バリデーション時のIntRangeアノテーションの使用において、独自のメッセージキーを指定したい。
ところが、IntRangeは「整数ではなかった」場合と「指定範囲におさまっていない」場合の
それぞれにメッセージが必要。
@IntRange(min = 0, max = 99, msg = @Msg(key = "message.number.invalid"))
などと記述した場合、0~99の間に収まっていない整数値だった場合は指定したキーのメッセージが出る。
しかし、例えば検証対象の値が「a」とかだった場合は
{0}は整数でなければいけません。
というデフォルトのメッセージ(application_ja.propertiesでは「errors.integer」というキーで定義されている)が
表示されてしまう。
例えば検証値のフィールド名が「number」だった場合、
「numberは整数でなければいけません。」
と表示されてしまう。これはダサい。
もちろんこの「errors.integer」の値を書き換えれば解決するといえばするが、
なんか許せない。
どうにかして両方とも独自メッセージにできないものか。
*** ついき ***
あっそうか、Msgアノテーションに「arg0=@Arg(key="番号", resource=false))」とか
追加すればいいのか。でも独自メッセージにはできてないな。