Java校验
用于处理我们提交的表单的数据的一些长度或者限制非空,注解的包是
添加的maven依赖
<dependency>
<groupId></groupId>
<artifactId>validation-api</artifactId>
<version>1.1.</version>
</dependency>
注解 | 描述 |
---|---|
@AssertFalse | 所注解的元素必须是Boolean类型,且值为false |
@AssertTrue | 所注解的元素必须是Boolean类型,且值为true |
@DecimalMax | 所注解的元素必须是数字,并且它的值要小于会等于给定的BigDecimalString值 |
@DecimalMin | 所注解的元素必须是数字,并且它的值要大于会等于给定的BigDecimalString值 |
@Digits | 所注解的元素必须是数字,且值必须有指定位数 |
@Future | 所注解的元素的值必须是一个将来的时间 |
@Max | 所注解的元素必须是数字,并且它的值要小于或等于给定的值 |
@Min | 所注解的元素必须是数字,并且它的值要大于或等于给定的值 |
@NotNull | 所注解的元素必须不能为null |
@Null | 所注解的元素必须为null |
@Past | 所注解的元素的值必须是一个已过去的日期 |
@Pattern | 所注解的元素的值必须匹配给定的正则表达式 |
@Size | 所注解的元素的值必须是String、集合或数组,并且它的长度要符合给定的范围 |
做一个测试:
假设我们有一个test类:
import ;
import ;
import ;
import ;
public class Test {
/**
* username 不为空 长度在5-16个字符之间
* password 不为空 长度在8-16个字符之间
* number 不为空 大小在0-100之间
*/
@NotNull
@Size(min = 5, max = 16)
private String username;
@NotNull
@Size(min = 8, max = 16)
private String password;
@NotNull
@Max(100)
@Min(0)
private int number;
}
接下来就需要配置controller控制器了
我们需要接受一个test的类型
import Test;
import ;
import ;
import ;
import ;
import ;
@Controller // 声明一个控制器
@RequestMapping
public class HomeController {
@RequestMapping("/submit")
public String submit(@Valid Test test, Errors errors){
if(()){
return "failed"; //如果提交的表单数据不符合校验规则就返回失败
}
return "success";//符合规则 就成功
}
}
//@Valid 是告诉Spring 需要确保这个对象满足校验限制