用法错误
参考:https://www.cnblogs.com/zjdxr-up/p/13308717.html
参考这个例子
@Data
public class ArticleDto {
@Min(value = 1, message = "页码不能小于1")
protected Integer page;
@Min(value = 10, message = "分页不能小于10")
protected Integer limit;
}
/**
* 分页获取文章列表
* @param ArticleDto
* @return
*/
@ApiOperation(value = "分页获取文章列表", notes = "分页获取文章列表")
@GetMapping
public PagedResult<ArticleVO> getArtiles(@Valid ArticleDto ArticleDto) {
// 封装值到AO
ArticleAO articleAO = new ArticleAO();
BeanUtils.copyProperties(ArticleDto, articleAO);
//List<Article> carousels=articleService.getCarousels();
//PagedResult<ArticleVO> results=articleService.findList(articleAO);
return articleService.findList(articleAO);
}
number和obj封装到一个Dto类里面,像这样 handle(@Valid Dto dto) {}
你好,是你的调用方式有问题.
this.handle(null) 这样的手动调用实例的方法,是不能触发参数校验的。
你用NotNull之前先要了解他的运行原理,它是怎么工作的,因为流程还是比较复杂,简单的说这东西要生效首先就是要就是要经过处理的拦截器。你实例直接调用,是不会经过的,所以无效
需要开启验证
1、@Validated 可以添加到接口类上或实现类上;
2、@NotNull 等注解 必须在接口上声明。
// 第一步,创建ValidatorFactory, 配置为默认配置
ValidatorFactory factory = Validation.buildDefaultValidatorFactory();
// 第三步,创建Validator
Validator validator = factory.getValidator();
// 第四步,调用校验方法
Set<ConstraintViolation<Car>> constraint = validator.validate(car);
car可以换成你具体的对象,这一段摘自Hibernate的官网,它校验Car对象。
这样写。