SSM-SpringMVC-深入SpringMVC组件-验证表单
使用JSR303注解验证输入内容
Spring 提供对Bean的功能校验,通过注解@Valid标明那个Bean需要开启注解式的验证。在javax.validation.constraints.*中定义了一系列JSR303规范:
注解 | 详细信息 |
---|---|
@Null | 被注释的元素必须为 null |
@NotNull | 被注释的元素必须不为 null |
@AssertTrue | 被注释的元素必须为 rue |
@AssertFalse | 被注释的元素必须为 false |
@Min(value) | 被注释的元素必须是一个数字,其值必须大于等于指定的最小值 |
@Max(value) | 被注释的元素必须是一个数字,其值必须小于等于指定的最大值 |
@DecimalMin(value) | 被注释的元素必须是一个数字,其值必须大于等于指定的最小值 |
@DecimalMax(value) | 被注释的元素必须是一个数字,其值必须小于等于指定的最大值 |
@Size(max,min) | 被注释的元素的大小必须在指定的范围内 |
@Digits(integer,fraction) | 被注释的元素必须是一个数字,其值必须在可接受的范围内 |
@Past | 被注释的元素必须是一个过去的日期 |
@Future | 注释的元素必须是一个将来的日期 |
@Pattern(value) | 被注释的元素必须符合指定的正则表达式 |
使用验证器
当遇到复杂的业务校验,Spring提供了Validator接口来实现检验,将他在进入控制器逻辑之前对参数进行合法性进行校验。
public interface Validator {
//判断当前验证器是否用于检测Class类型的POJO
//返回true启动检验,否则不检验
boolean supports(Class<?> var1);
//检验POJO的合法性
void validate(Object var1, Errors var2);
}
实现接口节能创建验证器,SpringMVC提供注解@InitBinder,通过它可以将验证器和控制器捆绑到一起,这样就能对表单进行验证
注解:@Valid启动验证器,参数Errors则是记录验证器返回错误信息的