欢迎访问 生活随笔!

ag凯发k8国际

当前位置: ag凯发k8国际 > 前端技术 > javascript >内容正文

javascript

java注解定义时间格式-ag凯发k8国际

发布时间:2024/10/14 javascript 24 豆豆
ag凯发k8国际 收集整理的这篇文章主要介绍了 java注解定义时间格式_springboot基础教程2-1-8 数据验证-自定义日期格式验证 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

1 概述

javax.validation包与hibernate-validator包中注解能满足大部分需求,但是还是有必要熟悉下自定义数据验证注解,如日期格式验证。

2 添加依赖

org.springframework.boot

spring-boot-starter-web

org.projectlombok

lombok

1.16.20

provided

3 自定义注解

定义一个@datetime注解

@target({elementtype.field, elementtype.parameter})

@retention(retentionpolicy.runtime)

@constraint(validatedby = datetimevalidator.class)

public @interface datetime {

string message() default "格式错误";

string format() default "yyyymm";

class>[] groups() default {};

class extends payload>[] payload() default {};

}

@constraint,指定校验类

message,失败提示信息

groups,分组验证(后面介绍)

payload,不知道,欢迎留言探讨

4 实现具体验证类

public class datetimevalidator implements constraintvalidator {

private datetime datetime;

@override

public void initialize(datetime datetime) {

this.datetime = datetime;

}

@override

public boolean isvalid(string value, constraintvalidatorcontext context) {

// 如果 value 为空则不进行格式验证,为空验证可以使用 @notblank @notnull @notempty 等注解来进行控制,职责分离

if (value == null) {

return true;

}

string format = datetime.format();

if (value.length() != format.length()) {

return false;

}

simpledateformat simpledateformat = new simpledateformat(format);

try {

simpledateformat.parse(value);

} catch (exception e){

return false;

}

return true;

}

}

实现constraintvalidator接口,定义initialize和isvalid方法。

initialize,主要用于初始化,它可以获得当前注解的所有属性

isvalid,进行约束验证的主体方法,其中 value 就是验证参数的具体实例,context 代表约束执行的上下文环境。

5 实体类

@data

public class user {

@notnull(message = "名字不能为空")

@length(min = 4, max = 10, message = "name 长度必须在 {min} - {max} 之间")

private string name;

@notnull(message = "生日不能为空")

@datetime(format = "yyyymmdd", message = "格式错误,正确格式为:yyyymmdd")

private string birthday;

}

6 控制层

@restcontroller

public class usercontroller {

@postmapping("/user")

public r adduser(@validated @requestbody user user, bindingresult br) {

if (br.haserrors()) {

return r.isfail().msg(br.getfielderror().getdefaultmessage());

} else {

return r.isok().data(user);

}

}

}

7 测试结果

8 工程目录

9 结束语

说点什么呢,有任何建议,欢迎留言探讨,本文源码。

欢迎关注博主公众号,第一时间推送最新文章

总结

以上是ag凯发k8国际为你收集整理的java注解定义时间格式_springboot基础教程2-1-8 数据验证-自定义日期格式验证的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得ag凯发k8国际网站内容还不错,欢迎将ag凯发k8国际推荐给好友。

网站地图