Я пытаюсь выполнить проверку компонентов JSR 303 в Spring 3.0 с помощью простого использования для использования. Проблема заключается в том, если я отправить форму без какого-либо значения проверка не происходит (т.е. метод hasErrors BindingResult() всегда возвращаются «ложь» и печать я крут Ниже фрагмент кода:!.@Valid (jsr 303) не работает в Spring mvc 3.0
@Controller
public class AnnotatedController {
@RequestMapping(value = "login")
public String validateLogin(@Valid LoginForm loginForm, BindingResult result, HttpServletRequest request) {
if(result.hasErrors())
System.out.println("Got Errors !");
else
System.out.println("I'm cool !");
return "login";
}
}
боб выглядит следующим образом:
public class LoginForm {
@NotEmpty
private String userName;
@Size(min=2, max=3)
private String password;
public String getUserName() {
return userName;
}
public void setUserName(String userName) {
this.userName = userName;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
}
Наконец вид:
<table>
<form:form action="login.htm" modelAttribute="loginForm">
<tr>
<td>User :</td>
<td><form:input path="userName" /></td>
</tr>
<tr>
<td>Password :</td>
<td><form:input path="password" /></td>
</tr>
<tr><td><input type="submit" value="Ok"> </tr>
</form:form>
</table>
Что я упускаю
Просто хотят проверить - Можете ли вы подтвердить, как вы настроили Spring-MVC, я предполагаю, что вы использовали ' ' или вы можете явно указать HandlerAdapter - если вы явно указали handlerAdapter, вам может понадобиться также указать валидатор (JSR 303). –
@BijuKunjummen Да, я настроил его, используя . Есть ли что-нибудь еще, что я должен делать здесь? –
Да, если вы используете mvc: annotation-driven, вам не нужно ничего делать. Не могли бы вы также подтвердить, что у вас есть реализация JSR 303 в вашем пути к классам - скажем, файлы jar для хранения hibernate-validator? –