我在Controller里这样写的@RequestMapping(value="/add",method=RequestMethod.POST)
public String addbinder(@Valid User user,BindingResult result) {
if(result.hasErrors()){
System.out.println("binder fail!");
return "ssuubb";
}else{
System.out.println("********************");
System.out.println(user.getNumber()+"here");
System.out.println(user.getAddress());
System.out.println(user.getPassword());
System.out.println("********************");
return "file";}
}
在实体bean中这样写的
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;import org.hibernate.validator.constraints.NotEmpty;
public class User{    @NotNull
private String number ;
   
   @Size(max=20,min=10)
private String password ;
   
   @NotEmpty
private String address ;
  
public String getAddress() {
return address;
} public void setAddress(String address) {
this.address = address;
} public String getNumber() {
return number;
} public void setNumber(String number) {
this.number = number;
System.out.println("user is ok");

} public String getPassword() {
return password;
} public void setPassword(String password) {
this.password = password;
}}
让然郁闷的是我在表单提交空值执行后输出:user is ok
********************
here
********************就是说User是实体化了的,可空值验证不管用,页面还是跳转到了file.jsp  而不是ssuubb.jsp那位帮忙看看啊

解决方案 »

  1.   

    @NotEmpty
    好像用错了吧,改用@NotNull试试
      

  2.   

    谢了,自己解决了,@NotEmpty和@NotNull都可以看你用Hibernate的包还是javax的包了我的原因是@ModelAttribute("user") @Valid User user,要捕捉错误需要用@ModelAttribute
    ("user") ,说实话我昨天也这么用了的,就是不管用,电脑有时候不可靠吧,今天抱着试试的心态居然管用了现在最大的感受就是要看英文文章,那上面都新东西,中文的太旧了,大家一起努力哈。呵呵》。
      

  3.   

    对了还要加一句<mvc:annotation-driven />这很重要的
      

  4.   

    同感,最好看最新的spring版本指南
      

  5.   

    搂主我想问下..你这个
     public String addbinder(@Valid User user,BindingResult result) {
    你这个@valid是那个包里面的..还有这个user对象你在前台的表单写法是 user.password 类似这样的吗..?
    或者前台直接写属性名..?
    我在后台获不到这些属性值 user对象始终为空