我遇到一些问题,找出如何在春季3验证。 到目前为止我所拥有的是这个Java Bean ....
public class User {
@NotEmpty
@Size(min=2, max=40)
private String name="";
@Email
private String email="";
public String getName(){
return name;
}
public String getEmail(){
return email;
}
public void setName(String name){
this.name=name;
}
public void setEmail(String email){
this.email=email;
}
}
这是链接到包含表单的页面的方法:
@RequestMapping(value="/form", method=RequestMethod.GET)
public String form(Model model){
model.addAttribute("user",new User());
return "form";
}
这是我控制器中的方法,“应该”验证
@RequestMapping(value="/displayUser",method=RequestMethod.POST)
public String displayUser(Model model,@Valid User user,BindingResult result){
if(result.hasErrors()){
return "form";
}
userList.add(user);
model.addAttribute("user",user);
return "displayUser";
}
@Validate注释应该进行验证,但在我的情况下它不会。
我的代码中有什么问题吗?
顺便说一下,这是我的形式“一切都很简单,这只是为了测试目的
<f:form method="post" action="displayUser" commandName="user">
<table align="center" border="1">
<tr>
<td>Your details</td>
</tr>
<tr>
<td><f:label path="name">Name:</f:label></td><td><f:input path="name" /></td><f:errors path="name"></f:errors>
</tr>
<tr>
<td><f:label path="email">Email:</f:label></td><td><f:input path="email" /></td><f:errors path="name"></f:errors>
</tr>
<tr>
<td><input type="submit" value="register" /></td>
</tr>
</table>
</f:form>
有什么建议吗? (我使用java 5,那里没有javax.validation.Validator)
答案 0 :(得分:0)
确保添加javax.validation的validation-api和hibernate验证器。如果您使用maven,请在依赖项上添加以下内容:
<dependency>
<groupId>javax.validation</groupId>
<artifactId>validation-api</artifactId>
<version>1.0.0.GA</version>
</dependency>
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-validator</artifactId>
<version>4.0.2.GA</version>
</dependency>
启用在applicationContext上驱动的Spring注释
<mvc:annotation-driven />