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

国内外贸平台有哪些如何做一个网站的seo

国内外贸平台有哪些,如何做一个网站的seo,国家免费编程平台,工作空窗期怎么缴纳社保一、前言 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.tj-hxxt.cn/news/92188.html

相关文章:

  • 安监网站如何做紧急预案备案北京seo执行
  • 吉浦网站建设武汉百度推广多少钱
  • 免费网站建站WWW222懂得网站推广
  • 17做网店这个网站做起多少钱seo优化案例
  • 网站管理规章制度上海网络关键词优化
  • c2c的网站2023年10月疫情还会严重吗
  • 专业的丹阳网站建设百度推广登录平台客服
  • 做商城网站带宽竞价排名的优缺点
  • 全国做网站的大公司电商运营公司简介
  • 重庆市住房和城乡建设厅官网长沙seo袁飞
  • 网站建设yanktseo顾问服务 乐云践新专家
  • 快速建站视频杭州网站建设方案优化
  • 2345网址导航中国最好的网址站杭州百度推广代理公司哪家好
  • 网站做附件下载地址搜索引擎营销的优缺点及案例
  • 机票订购系统网站开发需求分析镇江网站建设推广
  • 盐城网站建设官网百度助手官网
  • ebay网站做外贸优缺点小广告清理
  • WordPress积分插件制作武汉seo招聘信息
  • 推广网站的方式百度客服中心人工在线
  • 大型集团网站建设杭州seo搜索引擎优化公司
  • 百度人气榜排名直通车关键词怎么优化
  • 自己做网站卖什么名字宁波网站推广营销
  • php主机网站网络代运营推广
  • 做微商有卖鞋子的网站吗网络营销策划书格式
  • 度假村网站模板西安网站关键词优化费用
  • 如何用付费音乐做视频网站现在推广平台哪家最好
  • 英文网站建设报价重庆发布的最新消息今天
  • 做衣服的网站搜索推广渠道有哪些
  • 网站开发进度计划书石家庄网站建设就找
  • 专注高密做网站哪家好网络黄页平台网址有哪些