自定义校验

接口:

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;
    }
}

使用:

在属性上面使用注解

相关推荐
8Qi8几秒前
LeetCode 746:使用最小花费爬楼梯 —— 题解笔记
java·笔记·算法·leetcode·动态规划
用户298698530141 分钟前
Java 操作 Word 文档:常见编辑功能实现
java·后端
wxmtwfx4 分钟前
Linux 系统内核列表宏解析
linux·list·列表
utf8mb4安全女神4 分钟前
shell脚本
linux·运维·服务器
Sunia5 分钟前
《Agentx专栏》06-记忆系统:用Redis+Milvus给AI配上短期+长期双层记忆
java·架构
码不停蹄的玄黓7 分钟前
线上CPU 100% 全流程排查步骤
java
天一生水water7 分钟前
agent教程S01-Agent 最小循环教程整理
java·服务器·网络·agent
花果山~~程序猿8 分钟前
ubuntu20.4下载python3.12
linux
二哈赛车手11 分钟前
新人笔记---继图片搜索功能后续以及AI网络搜索功能一些经验与踩坑点,吐槽一下自己在做这方面的崩溃瞬间
java·网络·人工智能·spring boot·笔记·spring
计算机安禾11 分钟前
【算法分析与设计】第44篇:随机化复杂度类:RP、BPP与去随机化猜想
java·数据结构·数据库·算法·机器学习