3

私はSpringMVCWebアプリで作業しており、personSpringのValidatorを使用してdbオブジェクトを検証し、検証者の結果をJSP形式で表示しようとしていform:errors path=""ます。私はコントローラーにサーバーサイドメソッドを持っています:

@RequestMapping( value="/find", method = RequestMethod.GET )
public ModelAndView search(@ModelAttribute("Person") Person p,BindingResult result){

     Person person2 = personDao.get( p.getId() );
     ModelAndView mav = new ModelAndView("templates/person");

     PersonValidator personValidator = new PersonValidator();
     personValidator.validate(person2, result);
     mav.addObject("person",person2);
     mav.addObject("errors",result.getFieldErrors());

     return mav;
}

私はJSPコードを次のように持っています:

<form:form commandName="person" >
    <form:input path="personEmail" /> 
    <form:errors path="personEmail"  element="div" />
</form:form>

エラーメッセージを明示的に入力すると機能します${errors.personEmail }

だが 、

<form:errors path="personEmail"  element="div" />

動作しません。

ここで何が問題なのか教えていただけますか?


マップビューの自動サイズ変更マスクが正しく設定されていません。スーパービューのように、幅と高さが柔軟である必要があります。

4

2 に答える 2

0

変数名を絞り込んでください。

@Model Attribute( "Person")があり、コマンドの名前はPersonであり、jspではpersonがあり、personValidator.validate(person、result);にあります。あなたには人がいます。BindingResult => Person pの前にある同じオブジェクトを検証する必要があります。そうでない場合は、このように特定のオブジェクトのバインディング結果を明示的に作成する必要があります。

BindingResult errors = new BeanPropertyBindingResult(person,"person");
validate(Person person, Errors errors);
于 2012-06-11T14:07:08.873 に答える