博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
SpringMVC bean validator 自定义注解
阅读量:7250 次
发布时间:2019-06-29

本文共 1714 字,大约阅读时间需要 5 分钟。

hot3.png

有时候现有的验证注解满足不了部分业务需求,所以就有了扩展自定义注解。

1.添加注解类

import javax.validation.Constraint;import javax.validation.Payload;import java.lang.annotation.Documented;import java.lang.annotation.Retention;import java.lang.annotation.Target;import static java.lang.annotation.ElementType.*;import static java.lang.annotation.ElementType.PARAMETER;import static java.lang.annotation.RetentionPolicy.RUNTIME;/** * User: zhoujingjie * Date: 14-10-31 * Time: 下午6:00 */@Target({ METHOD, FIELD, ANNOTATION_TYPE, CONSTRUCTOR, PARAMETER })@Retention(RUNTIME)@Documented@Constraint(validatedBy = { PhoneNoValidator.class})public @interface PhoneNo {    //默认错误消息    String message() default "手机号码错误";    //分组    Class
[] groups() default { };    //负载    Class
[] payload() default { };    //指定多个时使用    @Target({ FIELD, METHOD, PARAMETER, ANNOTATION_TYPE })    @Retention(RUNTIME)    @Documented    @interface List {        PhoneNo[] value();    }}

自定义注解需要自定义validator,所以注解里变量也不是强制需要,可以就一个message也可以

2.添加PhoneNoValidator

import org.apache.commons.lang.StringUtils;import javax.validation.ConstraintValidator;import javax.validation.ConstraintValidatorContext;/** * 手机号码验证 * User: zhoujingjie * Date: 14-11-1 * Time: 上午10:45 */public class PhoneNoValidator implements ConstraintValidator
 {    @Override    public void initialize(PhoneNo constraintAnnotation) {    }    @Override    public boolean isValid(String value, ConstraintValidatorContext context) {        if(StringUtils.isEmpty(value))            return true;        if(value.matches("((\\+86)|(86))?1[3|4|5|8]\\d{9}")){            return true;        }        return false;    }}

3.最后

完成,一个简单的自定义注解就完工了。使用方式与其他注解一模一样

转载于:https://my.oschina.net/scjelly/blog/523711

你可能感兴趣的文章
分布式文件系统-FastDFS
查看>>
HTML5 rotate 做仪表盘
查看>>
为什么说荆州松滋刘氏采穴堂是刘开七、刘广传的后裔
查看>>
React中使用Ant Table组件
查看>>
第四篇 快速、轻量、可扩展、易于使用的EmEditor
查看>>
MySQL删除小写记录
查看>>
用shell脚本收集查询IP信息的网站
查看>>
shiro整合oauth
查看>>
超级网管员——网络管理
查看>>
AjaxControltoolkit(工具包)安装步骤说明
查看>>
利用组策略进行的一次Windows主机安全整改
查看>>
Ruby语法学习笔记(1)
查看>>
Windows Phone 7 使用选择器(Chooser)
查看>>
QOS 之 WRED
查看>>
ASP.NET MVC5 知识点整理
查看>>
CCNP 640-892知识点中文精简解释
查看>>
listview适配器与加载过程详解
查看>>
SDN控制器列表
查看>>
LeetCode - 8. String to Integer (atoi)
查看>>
在两个php下session无法使用的问题
查看>>