我想通過使用簡單的登錄用例來實現Spring 3.0中的JSR 303 bean驗證。問題是如果我提交表單未經驗證是不會發生任何值(即BindingResult方法hasErrors()總返回「假」,並打印我冷靜以下是代碼片段:!@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:註解驅動,你不需要做其他任何事情。你能否也請確認你的classpath中有一個JSR 303實現 - 比如說hibernate-validator jar文件? –