spring 3 mvc と hibernate バリデーターを使用してフォーム オブジェクトを検証するプロジェクトがあります。
私は春のドキュメントに従います
私のコントローラーでは、bindingresult を取得できますbindingresult.hasErrors() == true
。
ReloadableResourceBundleMessageSource
エラーメッセージのバインディングを行うために使用します。
私の質問は
、jsp Web ページでより柔軟なエラー メッセージを表示することは可能ですか?
たとえば、「アプリ名UserEnteredAppNameは無効です。サイズは2から255の間である必要があります」と言いたいです。
私の message.property では、次のように定義します。
Size.appNameForm.itemName=the app name {What Should I do in this brace?} is not valid. The size should be between {1} and {2}
{1} と {2} は '2' と '255' に補間できます。しかし、補間されたメッセージで UserEnteredAppName を取得するにはどうすればよいですか?
以下は私のフォームクラスとコントローラークラスです:
私のコントローラークラス:
@RequestMapping(value="foo.htm")
public String handleAppNameFormSubmit(@Valid @ModelAttribute("appNameForm") AppNameForm form, BindingResult result){
}
私のフォームクラス:
public class AppNameForm implements IForm{
@NotEmpty
@Size(min = 1, max = 255)
private String itemName;
....
}
ヒントが得られるリンクをいくつか見つけました。
例: Hibernate Validator でメッセージ パラメータを動的に解決するにはどうすればよいですか?
しかし、jsr303実装を使用するSpring MVCとSpring Controllを使用しています.hibernateのデフォルトValidatorImplを拡張して、カスタムバリデータを使用する方法を見つけることができません。
私が考えている解決策は、UserEnteredAppName を bindingResult に拒否するカスタム バリデータを使用できることです。出来ますか?または別の方法を見つける必要がありますか?
ありがとうアンドリュー