[转帖]Spring Validator和Hibernate Validator_Tomcat, WebLogic及J2EE讨论区_Weblogic技术|Tuxedo技术|中间件技术|Oracle论坛|JAVA论坛|Linux/Unix技术|hadoop论坛_联动北方技术论坛  
网站首页 | 关于我们 | 服务中心 | 经验交流 | 公司荣誉 | 成功案例 | 合作伙伴 | 联系我们 |
联动北方-国内领先的云技术服务提供商
»  游客             当前位置:  论坛首页 »  自由讨论区 »  Tomcat, WebLogic及J2EE讨论区 »
总帖数
1
每页帖数
101/1页1
返回列表
0
发起投票  发起投票 发新帖子
查看: 3664 | 回复: 0   主题: [转帖]Spring Validator和Hibernate Validator        下一篇 
Leon
注册用户
等级:少校
经验:1436
发帖:116
精华:7
注册:2013-1-4
状态:离线
发送短消息息给Leon 加好友    发送短消息息给Leon 发消息
发表于: IP:您无权察看 2013-1-8 12:55:05 | [全部帖] [楼主帖] 楼主

Spring Framework自带的validation的做法是,继承父类Validator,为每个FormBean绑定一个校验类。

  1. // 校验接口实现 
  2.  public class FeedbackValidator implements Validator { 
  3.  
  4.  @Override 
  5.  public boolean supports(Class clazz) { 
  6.  return Feedback.class.equals(clazz); 
  7.  } 
  8.  
  9.  @Override 
  10.  public void validate(Object obj, Errors e) { 
  11.  
  12.  ValidationUtils.rejectIfEmpty(e, "question", "question.empty"); 
  13.  ValidationUtils.rejectIfEmpty(e, "productId", "productId.empty"); 
  14.  } 
  15.  
  16.  } 

在controller中

  1. @Controller 
  2. public class StudentController { 
  3.  protected final Log logger = LogFactory.getLog(getClass()); 
  4.  
  5.  @InitBinder 
  6.  public void initBinder(WebDataBinder binder) { 
  7.  //添加一个日期类型编辑器,也就是需要日期类型的时候,怎么把字符串转化为日期类型 
  8.  SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd"); 
  9.  dateFormat.setLenient(false); 
  10.  binder.registerCustomEditor(Date.class, new CustomDateEditor(dateFormat, true)); 
  11.  //添加一个spring自带的validator 
  12.  binder.setValidator(new StudentValidator()); 
  13.  } 

    JSR-303是一个接口标准,它并不是Spring Framework 的一部分。

Hibernate Validator是JSR-303的一个实现。在FormBean里添加Hibernate Validator的注解,与定义一个校验类的做法相比。注解更加简洁、灵活。

注解说明

  1. Bean Validation 中内置的 constraint   
  2. @Null   被注释的元素必须为 null   
  3. @NotNull    被注释的元素必须不为 null   
  4. @AssertTrue     被注释的元素必须为 true   
  5. @AssertFalse    被注释的元素必须为 false   
  6. @Min(value)     被注释的元素必须是一个数字,其值必须大于等于指定的最小值   
  7. @Max(value)     被注释的元素必须是一个数字,其值必须小于等于指定的最大值   
  8. @DecimalMin(value)  被注释的元素必须是一个数字,其值必须大于等于指定的最小值   
  9. @DecimalMax(value)  被注释的元素必须是一个数字,其值必须小于等于指定的最大值   
  10. @Size(max=, min=)   被注释的元素的大小必须在指定的范围内   
  11. @Digits (integer, fraction)     被注释的元素必须是一个数字,其值必须在可接受的范围内   
  12. @Past   被注释的元素必须是一个过去的日期   
  13. @Future     被注释的元素必须是一个将来的日期   
  14. @Pattern(regex=,flag=)  被注释的元素必须符合指定的正则表达式   
  15. Hibernate Validator 附加的 constraint   
  16. @NotBlank(message =)   验证字符串非null,且长度必须大于0   
  17. @Email  被注释的元素必须是电子邮箱地址   
  18. @Length(min=,max=)  被注释的字符串的大小必须在指定的范围内   
  19. @NotEmpty   被注释的字符串的必须非空   
  20. @Range(min=,max=,message=)  被注释的元素必须在合适的范围内   

本文出自 “yamei” 博客,请务必保留此出处http://yamei.blog.51cto.com/4382266/1111120




赞(0)    操作        顶端 
总帖数
1
每页帖数
101/1页1
返回列表
发新帖子
请输入验证码: 点击刷新验证码
您需要登录后才可以回帖 登录 | 注册
技术讨论