@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 用在基本类型上