同一个接口因针对表单的某一个值从而需要校验不同的字段,所以使用了
javax.validation包中的 Validation来进行校验
第一步:先定义分组类
xxxClassGroup{
interface student{};//学生类型
interface teacher{};//老师类型
interface principal{};//校长类型
}
第二步:在传递进来的实体上加上注解
@NotBlank(message = "xxx不能为空",groups = {xxxClassGroup.student.class,xxxClassGroup.teacher.class,xxxClassGroup.principal.class})
private String xxx;//该字段在三个分组下都有使用
第三步:在controller层进行验证
1.创建验证构造器
Validator validator = Validation.buildDefaultValidatorFactory().getValidator();
2.根据传递进来的对象某字段的值与枚举值进行判断可写多个if
if(xxxxxDto.getxxx()==xxxEnum.xxx.getValue()){
Set<ConstraintViolation<Object>> set=validator.validate(xxxDto,xxxClassGroup.class) //TODO在对set集合进行遍历取出里面的message信息,则实现了对同字段不同的值分组验证 }
if(xxxxxDto.getxxx()==xxxEnum.xxx.getValue()){
Set<ConstraintViolation<Object>> set=validator.validate(xxxDto,xxxClassGroup.class) //TODO在对set集合进行遍历取出里面的message信息,则实现了对同字段不同的值分组验证 }