0

私がやりたいことは、注釈を使用して上記のエラーメッセージに値を入力する標準エラーメッセージを用意することです。コードは説明に役立つはずです。

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 ベースの検証エラーを処理するためにも必要です。楽しいこと、それ。

よろしくお願いします。

4

1 に答える 1

2

このフォーラムをご覧ください: http://forum.springsource.org/archive/index.php/t-83353.html

または、 DefaultMessageCodesResolverでサポートされている標準のメッセージ キーを使用できます。

すでに実装されているようです。

于 2011-04-07T13:51:15.773 に答える