私はSpringブートとHibernateバリデーターとThymeleafを使用します。私のコントローラにi18nでカスタムhibernate検証メッセージを返すにはどうしたらいいですか?
フォームアイテムを検証するとすべて問題ありません。
しかし、私は検証コードを追加した後、それは間違っているコードだ場合、私がチェックは、
コードが間違っている
は、私は新しいFieldError
を追加し、それを返します。
if (!captchaCode.equalsIgnoreCase(user.getVrifyCode())){
bindingResult.addError(new FieldError("user", "vrifyCode", "{singup.vrifycode.error}"));
}
そしてもちろん、私は私のValidationMessages.propertiesファイルでsingup.vrifycode.error
を定義しました。
ウェブページでは、正しい値ではなく、singup.vrifycode.error
と表示されます。
私のモデルでは、このようなことはすべて大丈夫です。
@NotBlank(message="{signup.email.null}")
@Email(message="{signup.email.fomart}")
private String email;
私のページに正しい値を表示するにはどうすればよいですか?
私ができない場合は、ValidationMessages_en_US.properties、ValidationMessages_ja_JP.propertiesなどで正しい値(ロケール別)を取得する方法を教えてください。
ありがとうございます!
誠にありがとうございます。私はエラーメッセージを正しく表示しましたが、あなたが言うように、Springメッセージファイルで定義されたメッセージのみを表示できます.Hibernate Validatorメッセージファイル(ValidationMessages_en_US.properties)を使用できるかどうかを知りたい場合は、ソースコードを変更するHibernate Validatorコントロールの下での検証)。 PS:私はBean Validation APIでチェックできないので、私のコントローラの検証コードをチェックします。ありがとう! – YOUNG
@YOUNGカスタムコードを使用してHibernateメッセージファイルを読み込むことができますが、その目的がすべての検証メッセージを同じ場所に持つことが目的ならば、すべてをすぐに使えるSpringメッセージファイルに入れます。 – holmis83
もしそれがすべてのメッセージをHibernateメッセージファイルに入れる方法がないならば?私のソースコードを変更することさえできます。 – YOUNG