私がやりたいことは、注釈を使用して上記のエラーメッセージに値を入力する標準エラーメッセージを用意することです。コードは説明に役立つはずです。
JSR-303 アノテーションを含むフィールドを持つモデル POJO があります。
@Min(value = 1)
@Max(value = 9999)
private int someInt;
現在、2 つのプロパティ ファイルがあります。1 つはフィールドのラベルを保持し、もう 1 つは実際のメッセージを保持します。
label.someInt=Some Integer Field
Min="{0}" must be no less than {value}
次に、必要なものを構築するためにループします。
for (FieldError a : result.getFieldErrors()) {
boolean found = false;
for (String b : a.getCodes()) {
System.out.println(b);
try {
addErrorMessage(messageSource.getMessage(b,
new Object[] { new DefaultMessageSourceResolvable(
new String[] { "label." + a.getField() }
)},
null));
found = true;
break;
} catch (Exception e){/* nom Exception */}
}
if (!found) {
addErrorMessage(a.getDefaultMessage());
}
}
それはすべて素晴らしいことですが、私は注釈ベースの方法に固執し、フィールドに何らかのラベルを追加できるようにしたいと考えています。例えば:
@Min(value = 1)
@Max(value = 9999)
@Label(value = "Some Integer Field")
private int someInt;
次に、注釈を使用して、プロパティ ファイルにあるエラー メッセージにラベルを付けるだけのヘルパー関数を作成できます。これは、typeMismatch などの Spring ベースの検証エラーを処理するためにも必要です。楽しいこと、それ。
よろしくお願いします。