springMvc 的参数验证 BindingResult result 的使用

http://blog.sina.com.cn/s/blog_6829be5c0101alxh.html 非常详细的一篇讲解 并且值得深入探讨

http://bbs.csdn.NET/topics/360254599  简单明了

1. 首先导入依赖包bean-validator.jar

2.在实体类上面写一些相关的验证信息:可以搜索更多的一些验证方式,这只是一部分

可以参考:点击打开链接http://blog.csdn.Net/caihaijiang/article/details/7463514

[java] view plain copy
 
 在CODE上查看代码片派生到我的代码片
  1. private String username;  
  2.     private String password;  
  3.     private String nickname;  
  4.     private String email;  
  5.       
  6.     public User() {  
  7.     }  
  8.   
  9.     @NotEmpty(message="用户名不能为空")  
  10.     public String getUsername() {  
  11.         return username;  
  12.     }  
  13.   
  14.     public void setUsername(String username) {  
  15.         this.username = username;  
  16.     }  
  17.   
  18.     @Size(min=1,max=10,message="密码的长度应该在1和10之间")  
  19.     public String getPassword() {  
  20.         return password;  
  21.     }  
  22.   
  23.     public void setPassword(String password) {  
  24.         this.password = password;  
  25.     }  
  26.   
  27.     public String getNickname() {  
  28.         return nickname;  
  29.     }  
  30.   
  31.     public void setNickname(String nickname) {  
  32.         this.nickname = nickname;  
  33.     }  
  34.   
  35.     @Email(message="邮箱的格式不正确")  
  36.     public String getEmail() {  
  37.         return email;  
  38.     }  
  39.   
  40.     public void setEmail(String email) {  
  41.         this.email = email;  
  42.     }  

3.后台controller处理

[java] view plain copy
 
 在CODE上查看代码片派生到我的代码片
  1. @RequestMapping("save")  
  2.     public String save( @Valid User user,BindingResult result) {  
  3.         //  
  4.         if(result.hasErrors()){  
  5.             List<ObjectError> ls=result.getAllErrors();  
  6.             for (int i = 0; i < ls.size(); i++) {  
  7.                 System.out.println("error:"+ls.get(i));  
  8.             }  
  9.         }  
  10.         return "adduser";  
  11.     }  

对BindingResult的深入解析:如果在使用接口返回信息的时候,可以直接拿到bindingResult中的错误信息

[java] view plain copy
 
 在CODE上查看代码片派生到我的代码片
  1. if(br.hasErrors()) {  
  2.             //如果有错误直接跳转到add视图  
  3.             FieldError fieldError= br.getFieldError();  
  4.             System.out.println(fieldError.getDefaultMessage());  
  5.               
  6.             List<FieldError> list = br.getFieldErrors();  
  7.             for (FieldError fieldError2 : list) {  
  8.                 System.out.println(fieldError2.getDefaultMessage());  
  9.             }  
  10.             List<ObjectError> ls=br.getAllErrors();  
  11.             for (int i = 0; i < ls.size(); i++) {  
  12.                 System.out.println("error:"+ls.get(i).getDefaultMessage());  
  13.             }  
  14.             return "user/add";  
  15.         }  
原文地址:https://www.cnblogs.com/soundcode/p/6443858.html