当前位置: 首页 > news >正文

国内外贸平台有哪些深圳网站优化

国内外贸平台有哪些,深圳网站优化,京东购物app下载安装,深深深视频在线观看一、前言 ConstraintValidator是Java Bean Validation(JSR-303)规范中的一个接口,用于实现自定义校验注解的校验逻辑。ConstraintValidator定义了两个泛型参数,分别是注解类型和被校验的值类型。在实现ConstraintValidator接口时&…

一、前言

        ConstraintValidator是Java Bean Validation(JSR-303)规范中的一个接口,用于实现自定义校验注解的校验逻辑。ConstraintValidator定义了两个泛型参数,分别是注解类型和被校验的值类型。在实现ConstraintValidator接口时,需要重写initialize、isValid等方法,并实现具体的校验逻辑。

二、自定义注解校验参数是否为Null

        比如校验参数name不能为null或者空字符串,先编写@interface类ValidNull:

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.RetentionPolicy.RUNTIME;@Target({METHOD, FIELD, ANNOTATION_TYPE, CONSTRUCTOR, PARAMETER})
@Retention(RUNTIME)
@Documented
@Constraint(validatedBy = {NullValidator.class})
public @interface ValidNull {// 默认错误消息String message() default "name不能为空";// 分组Class<?>[] groups() default {};// 负载Class<? extends Payload>[] payload() default {};
}

        再编写校验类 NullValidator:

import javax.validation.ConstraintValidator;
import javax.validation.ConstraintValidatorContext;public class NullValidator implements ConstraintValidator<ValidNull, String> {@Overridepublic void initialize(ValidNull constraintAnnotation) {ConstraintValidator.super.initialize(constraintAnnotation);}@Overridepublic boolean isValid(String value, ConstraintValidatorContext context) {if (null == value || "".equals(value)){return false;}return true;}
}

        编写实体类NullTest,并在此加上注解:

import lombok.Data;@Data
public class NullTest {@ValidNullprivate String name;
}

         最后在controller层进行调用校验,注意需要在实体类前面加上@Validated 注解,否则校验是不生效的:

    @PostMapping(value = "/test")public RetResult test(@RequestBody @Validated NullTest nullTest) {System.err.println(nullTest.getName());return RetResult.success();}

        测试结果:

        当name有值时,正常通过:

         当name为null时,提示校验错误信息:

        当name为空字符串时, 提示校验错误信息:

 

三、自定义注解校验参数值大小

        比如一个参数是数字,需要校验其大小,方法如下:

        先编写@interface类:

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.RetentionPolicy.RUNTIME;@Target({METHOD, FIELD, ANNOTATION_TYPE, CONSTRUCTOR, PARAMETER})
@Retention(RUNTIME)
@Documented
@Constraint(validatedBy = {NumValidator.class})
public @interface ValidNum {int value();// 默认错误消息String message() default "num不能大于20";// 分组Class<?>[] groups() default {};// 负载Class<? extends Payload>[] payload() default {};
}

        这里有添加value,这个可以在使用该注解时,传参数,下面的默认错误信息,也可以在使用注解时一起使用,只是在没有传参数时默认使用而已。

        编写NumValidator校验类:

import javax.validation.ConstraintValidator;
import javax.validation.ConstraintValidatorContext;public class NumValidator implements ConstraintValidator<ValidNum,Integer> {private Integer value;@Overridepublic void initialize(ValidNum constraintAnnotation) {this.value = constraintAnnotation.value();}@Overridepublic boolean isValid(Integer value, ConstraintValidatorContext context) {if(value > this.value){return false;}return true;}
}

        可以看到这里也定义了value,在initialize里面初始化,也就是获取使用该注解的地方传入的值。

        编写实体类NullTest:

import lombok.Data;@Data
public class NumTest {@ValidNum(value = 30, message = "数值不能大于30")private Integer num;
}

        在controller层测试:

    @PostMapping(value = "/test")public RetResult test(@RequestBody @Validated NumTest numTest) {System.err.println(numTest.getNum());return RetResult.success();}

        测试结果:

        当传入参数小于30时:

        当传入参数大于30时:

 

http://www.mnyf.cn/news/52015.html

相关文章:

  • 天津市武清区住房建设网站整合营销传播案例分析
  • 手机网站怎么做沉浸式西安seo专员
  • 中交路桥建设有限公司官网深圳seo论坛
  • 在哪几个网站里可以做淘客国内新闻最新
  • 网站改版需要重新备案吗竞价广告
  • 白云网站建设哪家好做网站用哪个软件
  • 学校网站模板wordpress可以看国外网站的浏览app
  • 用jsp做的网站首页软文推广文案
  • 做游戏 做网站民生热点新闻
  • 做蛋糕比较火的网站福州外包seo公司
  • 爬虫 做资讯网站关键词怎么找出来
  • 网站轮播广告青岛网络优化代理
  • 城北区建设局网站怎么免费制作网站
  • 洛阳霞光seo网络公司厦门seo怎么做
  • 做网站seo优化it行业培训机构哪个好
  • 视频网站seo软件视频教程
  • 建材网站建设外包公司值得去吗
  • 无二制造 网站升级建设中it培训机构出来能找到工作吗
  • 制造业小程序网站开发网络营销整合营销
  • 网站权重如何合理分配网页生成
  • 做网站的基本步骤湖南seo优化首选
  • 阿里OSS做网站图库费用成品网站1688入口网页版
  • 可可里小姐网站建设网站优化软件哪个好
  • 720全景网站怎么做最新域名ip地址
  • 上海网站建设哪家做得好搜狐视频
  • 做视频商用模板哪个网站靠谱百度快照投诉中心人工电话
  • 武汉专业网站做网页新手20种引流推广方法
  • 网站设计开发的难点十大计算机培训机构排名
  • 更改网站主题磁力搜索器
  • 欧美网站模板 psd需要优化的网站有哪些?