1

これが、JPAエンティティでBeanValidationを使用して実行できるようにしたいことです。

  1. の代わりに@NotNull、やりたい@NotNull(message="keyInMyResourceBundleFile")
  2. また、resourceBundleをパラメーター化したいのですが、メッセージ属性に文字列しか含まれていないように見えるため、構文がわかりません。
  3. パラメータ自体はi18n-edである可能性があります。たとえば、resourcebundleパラメータにparam属性があるとすると、英語で@NotNull(message="missing.value", params={"credit card"}) String creditCard;は次のように表示されます。「フィールドクレジットカードに必要な値がありません。インドネシアでは、「Nilai harus di isi untukKartuKredit」のようになります。この例では、「クレジットカード」をハードコーディングできません。これは、インドネシアでは「KartuKredit」であるためです。
  4. リソースバンドルで定義されているエラーメッセージをログファイルまたはUIに表示します。それを行う方法がわかりませんConstraintViolationException。自分のコードでリソースバンドルをキャッチしてメッセージを取得し、処理する必要がありますか?

これについてのあなたの考えを共有してください?

ありがとうございました !

4

1 に答える 1

3

1+2について

@NotNull(message="{keyInMyResourceBundleFile}")

中括弧はパラメータ置換の指標です

3について

あなたが何を求めているのか分かりません。@NotNullのparams属性はありません。私はあなたがするだろうと思います

@NotNull(message="{missing.credit.card}")

また、別のプロパティに配置する場合は、キー{missing.name}を呼び出します。

4について

ConstraintViolationExceptionには、一連の*ConstraintViolation*が含まれています。各ConstraintViolationには、補間されたメッセージとメッセージテンプレートが含まれています。ログに記録したい場合は、それを実行してください...

于 2011-03-23T14:30:26.223 に答える