春にフォームの検証を設定する際に問題があります。spring mvcアプリケーションでjsr-303の検証が有効でない
私はこのような外観を検証したいと思い豆:
public class RegistrationForm extends ProjectXUser {
@NotEmpty
private String password2;
@NotBlank
@AssertTrue
private Boolean agreedToConditions;
...
ProjectXUserも注釈を付けているいくつかのより多くの特性を有しているBaseUserから継承します。
私のコントローラは次のようになります。
@Controller
public class RegistrationController {
private static final String REGISTRATION_JSP = "registration";
@ModelAttribute("registrationForm")
public RegistrationForm getRegistrationForm() {
return new RegistrationForm();
}
@RequestMapping(value = { "/registratie/jaar", "registratie/proef" }, method = RequestMethod.GET)
public String year() {
return "registration";
}
@RequestMapping(value = { "/registratie/jaar", "registratie/proef" }, method = RequestMethod.POST)
public ModelAndView register(@Valid RegistrationForm registrationForm, BindingResult result) {
if (result.hasErrors()) {
return new ModelAndView(REGISTRATION_JSP);
} else {
return new ModelAndView("redirect:/registratie/success");
}
}
}
私の春の設定ファイルには含まれています
<bean id="validator" class="org.springframework.validation.beanvalidation.LocalValidatorFactoryBean" />
<mvc:annotation-driven />
を私は、JSR-303のバリデータはクラスに存在している場合は、その春のドキュメントで読みましたそれを自動的に検出して使用します。だから、私はpomにhibernate-validatorを追加しました。
私のコントローラをデバッグするとき、私が記入した値がregistrationFormに含まれているのがわかりますが、結果には常に0エラーがあります。私がフォームフィールドに間違った入力を明示的に入力したとしても。
@Controllerが動作するように を使用していますが、スキャンされたパッケージのRegistrationFormクラスですか? –
はい私は を使用しています。それはorg.x.yをスキャンし、私のRegistrationFormはorg.x.y.web.formsにあります。それはそれを拾う必要があります。 –
'validator.validate(registrationForm)'で手作業で検証するとうまくいきますか? – tbruyelle