2
Hibernate Validatorによって生成されたレスポンスをオーバーライドする例外マッパーを作成しました。Hibernate Validator:制約違反メッセージのオーバーライド
私の問題は、制約違反の種類に基づいて簡単に切り替えることが困難なため、カスタムメッセージの作成に問題があることです。理想的には、注釈に基づいてスイッチを設定し、レスポンスでカスタムメッセージングを返すことができます。理想的には、次のようになります。
@Override
public Response toResponse(ConstraintViolationException exception) {
ConstraintViolation violation = exception.getConstraintViolations().iterator().next();
String message = null;
switch (violation.getType()) {
case SomeEnum.NOT_NULL:
message = "It's not null!";
break;
default:
message = "Other message!";
}
...
}
このような単純なことはありますか?
これは素晴らしいアプローチではありません。メッセージを国際化したいのですが?この道を行くなら、注釈付きの 'message'をキーにして、通常のメッセージバンドルを使います。既定の制約注釈の既定値を参照してください。 – chrylis
私は既に国際化を扱うための文字列ファイルを持っています。私は例を簡略化して、それが焦点ではないようにしました。私がここで興味を持っているのは、どこからメッセージを取り出すのではなく、正しいメッセージングを選択するメカニズムです。 – Brandon