自定义校验

接口:

java 复制代码
@Target({ElementType.METHOD, ElementType.FIELD, ElementType.ANNOTATION_TYPE, ElementType.CONSTRUCTOR, ElementType.PARAMETER, ElementType.TYPE_USE})
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Constraint(validatedBy = {CannotBlankValidation.class})
public interface CannotBlank{
    //默认错误信息
    String message() default "不能包含空格";

    Class<?>[] groups() default {};

    Class<? extends Payload>[] payload() default {};

    @Target({ElementType.METHOD, ElementType.FIELD, ElementType.ANNOTATION_TYPE, ElementType.CONSTRUCTOR, ElementType.PARAMETER, ElementType.TYPE_USE})
    @Retention(RetentionPolicy.RUNTIME)
    @Documented
    public @interface List {
        CannotBlank[] value();
    }
}

实现类:

java 复制代码
public class CannotBlankValidation implements ConstraintValidator<CannotBlank,String> {
    @Override
    public boolean isValid(String value, ConstraintValidatorContext context) {
        if (value != null && value.contains(" ")){
            //获取默认提示信息
            String defaultConstraintMessageTemplate = context.getDefaultConstraintMessageTemplate();
            System.out.println("default message : " + defaultConstraintMessageTemplate);

            //禁用默认提示信息
            context.disableDefaultConstraintViolation();

            //设置提示语
            context.buildConstraintViolationWithTemplate("can not contains blank").addConstraintViolation();

            return false;
        }
        return false;
    }
}

使用:

在属性上面使用注解

相关推荐
用户298698530148 小时前
Word 转 PDF 的 3 种自动化实现:从桌面操作到后端服务集成
java·人工智能·后端
闲云自留地8 小时前
课后作业-20260806-Linux iSCSI服务器
linux·运维·服务器
智购科技智能售货柜8 小时前
自动售货机商品识别YOLO模型训练实战:从6万张图片到98%识别率的完整复盘~YH
运维·服务器·数据库·人工智能·redis·物联网·yolo
Zane19948 小时前
线程池进阶:如何科学设置线程数(结合实际业务场景复盘)
java·后端
SeaTunnel8 小时前
Apache SeaTunnel 提交一个任务都经过了什么?
java·大数据·服务器·apache·etl·seatunnel
mifengxing8 小时前
Java TreeSet
java·开发语言
.冰块.8 小时前
P-SAN 实战:CentOS7 搭建 iSCSI Target 共享块存储
linux·服务器·iscsi
Kina_C8 小时前
Keepalived 单播模式实战:跨网络高可用的关键配置
linux·服务器·网络·keepalived
编程风暴9 小时前
零基础数据分析项目模板+5条避坑红线
java·数据挖掘·数据分析
IKUN家族9 小时前
常见的依懒
java·服务器·数据库