重写@Valid 注解@Length 的验证方式

问题描述:

项目前后台添加了防止XSS的攻击的转码后,在使用@Length注解验证长度的时候,在输入内容长度为临界值并且输入内容包含某些特殊字符(如:’<'被转码为‘&lt;’)时报超长,所以这里重写了@Length注解的验证方式


解决方案:

1、打开@Length注解的源码:如下图所示:

重写@Valid 注解@Length 的验证方式
2、新建注解
重写@Valid 注解@Length 的验证方式
3、复制1中的源码至2中新建的注解,因为这里只验证字符串,所有新创建的注解删除list相关的验证,如下图
重写@Valid 注解@Length 的验证方式

4、创建4中的验证类,并编写代码如下所示:
重写@Valid 注解@Length 的验证方式
5、在实体类的属性上使用我们新创建的注解,与@Length的使用方式一样,如下图:
重写@Valid 注解@Length 的验证方式
6、不要忘记在实体类上添加@Valid注解,否则属性上的注解回不起作用。