SpringMVC使用JSR303对进行数据验证

JSR303是Java为Bean数据合法性校验所提供的标准框架。需要对属性标注一些注解如:@NotNull、@Max(value)、@Min(value)等。

地址:https://jcp.org/en/jsr/detail?id=303 选择适合自己的版本下载。

注意:虽然SpringMVC支持JSR303标准的校验框架,Spring的DataBinder进行数据绑定时,同时也会调用相应的方法来对数据进行校验,但是Spring没有提供对JSR303的支持。

hibernate-validator-4.3.2.Final-dist.zip     下载地址:http://hibernate.org/validator需要在项目中加入三个jar文件。

分别是

hibernate-validator-4.3.2.Final.jar

jboss-logging-3.1.0.CR2.ajr

validation-api-1.0.0.GA.jar

步骤:

1.在需要验证数据的Bean中,对属性添加相应的校验注解。

2.在Controller的处理方法中需要对需验证数据Bean 添加@valid注解。

另外,带注解@valid注解的参数后,要紧跟一个BindingResult或者是Error的类型的入参,否则Spring会在检验不通过时直接抛出异常。

public class User{

    @NotEmpty(message="用户姓名不能为空")
    public String name;
    @NotEmpty(message="用户电话号码不能为空")
    public String phone;
    @Min(10)
    public int age;

    //省略setter and getter method
}
//UserController

@RequestMapping(value="...",method=RequestMethod.POST)
public string addSave(@Valid User,BindingResult bindingResult,HttpSeesion session){
    //业务处理略.....
}
约束 说明
@Null 被注释的元素必须为null

@NotNull

被注释的元素必须不为null
@AssertTure 被注释的元素必须为ture
@AssertFalse 被注释的元素必须为false
@Min(value) 被注释的元素必须是一个数字,并且值需要大于或等于value
@Max(value) 被注释的元素必须是一个数字,并且值需要小于或等于value
@DecimalMin(value) 被注释的元素必须是一个数字,并且值需要大于或等于value
@DecimalMax(value) 被注释的元素必须是一个数字,并且值需要小于或等于value
@Size(max,min) 被注释的元素需要在min到max的范围内
@Digits(integer,fraction) 被注释的元素必须是一个数字,值必须在可接受范围
@Past 被注释的元素要求是过去的日期
@Future 被注释的元素要求是将来的日期
@Pattern(value) 被注释的元素必须符合指定的正则表达式
发布了51 篇原创文章 · 获赞 9 · 访问量 3万+

猜你喜欢

转载自blog.csdn.net/pannubi/article/details/94556034