Spring Validator和Hibernate Validator

Spring Validator和Hibernate ValidatorSpringFramework自带的validation的做法是,继承父类Validator,为每个FormBean绑定一个校验类。//校验接口实现publicclassFeedbackValidatorimplementsValidator{@Overridepublicbooleansupports(Classc…

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

// 校验接口实现 
    public class FeedbackValidator implements Validator { 
 
        @Override 
        public boolean supports(Class clazz) { 
            return Feedback.class.equals(clazz); 
        } 
 
        @Override 
        public void validate(Object obj, Errors e) { 
             
            ValidationUtils.rejectIfEmpty(e, "question", "question.empty"); 
            ValidationUtils.rejectIfEmpty(e, "productId", "productId.empty"); 
        } 
 
    } 

在controller中

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

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

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

注解说明

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

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/35907.html

(0)
编程小号编程小号

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注