@NotNull 验证对象是否不为null, 无法查检长度为0的字符串.
@NotBlank 检查约束 (字符串) 是不是Null还有被Trim的长度是否大于0,只对字符串,且会去掉前后空格.
@NotEmpty 检查(集合)约束元素是否为NULL或者是EMPTY.
@Data @AllArgsConstructor @NoArgsConstructor @Builder public class DepartmentDto extends BaseDto { @NotBlank(message = "部门名称不能为空!") private String departmentName; @NotEmpty(message = "所属单位不能为空!") private String belongCompany; private String superDepartment; @NotNull(message = "上级部门id不能为null") private String superId; }
注意在使用@NotBlank等注解时,一定要和@valid一起使用,不然他们将不起什么作用,就纯是一个注解了。
@PostMapping("add_department") @ApiOperation(value = "添加部门") public BaseResponse addDepartment(@Valid DepartmentDto departmentDto, BindingResult bindingResult) { if(bindingResult.hasErrors()){ return BaseResponse.builder().code(ResultCode.FAILURE) .message(Objects.requireNonNull(bindingResult.getFieldError()).getDefaultMessage()).build(); } Boolean depart = departmentService.addDepartment(departmentDto); if (depart) { return BaseResponse.builder().code(ResultCode.SUCCESS).message("添加成功!").build(); } else { return BaseResponse.builder().code(ResultCode.FAILURE).message("添加失败!").build(); } }
@NotBlank测试样例
@NotEmpty测试样例
@NotNull测试样例(可以为空字符串)
总结: 1.注意注解引用的包
import javax.validation.constraints.NotBlank; import javax.validation.constraints.NotEmpty; import javax.validation.constraints.NotNull;
2. @NotEmpty 用在集合类上面更适合,我这里就直接用在了字符串上面
@NotBlank 用在String上面
@NotNull 用在基本类型上