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

ppt模板免费下载网站知乎wordpress分类显示插件

ppt模板免费下载网站知乎,wordpress分类显示插件,wordpress 去掉category,聊城网站建设公司自定义注解校验的实现步骤#xff1a; 1.创建注解类#xff0c;编写校验注解#xff0c;即类似NotEmpty注解 2.编写自定义校验的逻辑实体类#xff0c;编写具体的校验逻辑。(这个类可以实现ConstraintValidator这个接口#xff0c;让注解用来校验) 3.开启使用自定义注解进…自定义注解校验的实现步骤 1.创建注解类编写校验注解即类似NotEmpty注解 2.编写自定义校验的逻辑实体类编写具体的校验逻辑。(这个类可以实现ConstraintValidator这个接口让注解用来校验) 3.开启使用自定义注解进行校验。 第一种实现自定义注解的方式https://blog.csdn.net/m0_46459413/article/details/134257302?spm1001.2014.3001.5502 第二种实现自定义注解的方式 一、创建注解类 1、创建类时选择Annotation类型 2、编写注解类 如图是我们自定义的一个年龄注解message是该注解校验失败时的提示信息default是默认值我们可以重写该提示信息。下面两行代码是自定义注解需要加上的这里不作研究。 二、自定义注解校验逻辑的实现 这里有两种实现方式 一种是当注解仅仅作用在字段(属性)上生效时可以在工具类中编写方法进行逻辑校验 另一种使用Constraint注解指明了校验类进行校验这里只实现第二种。 第二种使用Constraint注解指明校验类进行校验 EX自定的Age注解上面有一个Constraint注解该注解指明了校验类我们点进MyAnnoationValidator类看一下 可以看到校验类都必须要实现ConstraintValidator接口并且重写接口中的两个方法。 接口上是有泛型的第一个泛型代表了我们这个校验类是哪个注解的校验类第二个泛型代表该注解校验的参数是什么类型第二个注解默认是Object类型我们改成了Integer类型 initialize方法 是该校验类的初始化方法在这个方法里我们可以对传进来的参数作一些处理。 isValid方法 就是注解类型的核心校验方法校验通过与否就是看该方法的返回值是true还是falsetrue就代表校验通过false就代表校验失败 三、使用自定义注解 自定义校验注解在代码中的应用 1、在dto中使用 定义一个实体类User 2、在代码中使用 定义一个Controller使用Valid注解我们的User类Valid注解没有实际的注解体这个注解的作用就是使我们的Age注解起作用。 后面的BindingResult类的作用是当注解校验失败时我们可以手动去处理。如果不加这个类的话注解校验失败会直接返回http的400错误码。加上这个类我们可以自己自定义错误信息然后返回此时的http状态码为200 3、valid注解 1、valid注解作用 valid注解主要用于数据校验在接口的入参实体类前添加Valid注解这时实体类会开启一个校验的功能然后在入参实体类中的属性上添加不同的注解例如NotBlank注解来完成不同的校验规则。 2、valid注解的使用 a、在实体类中添加valid相关注解 使用Valid相关注解非常简单只需要在参数的实体类属性上添加如NotBlank,Max,Min等注解对字段进行限制。如下 public class User{NotBlank(message 姓名不为空)private String username;NotBlank(message 密码不为空)private String password; }如果嵌套了实体对象则需要在最外层属性上添加Valid注解否则嵌套实体对象中的验证不生效 public class User{NotBlank(message 姓名不为空)private String username;NotBlank(message 密码不为空)private String password;//嵌套必须加Valid否则嵌套中的验证不生效ValidNotNull(message 用户信息不能为空)private UserInfo userInfo; }public class UserInfo {NotBlank(message 年龄不为空)Max(value 18,message 不超过18岁)private String age;NotBlank(message 性别不为空)private String gender; }b、在接口中添加valid注解 在controller类中添加接口POST方法中接收设置了Valid相关注解的实体对象然后再参数中添加Valid注解来开启效验功能需要注意的是Valid对Get请求中接收的平面参数请求无效。 RestController public class TestController {PostMapping(/user)public String addUserInfo(Valid RequestBody User user){return 调用成功;} }参考链接https://blog.csdn.net/weixin_43400432/article/details/126159450 四、观察仿照 NotEmpty注解编写自定义校验注解 1、观察下NotEmpty 注解: // // Source code recreated from a .class file by IntelliJ IDEA // (powered by Fernflower decompiler) //package org.hibernate.validator.constraints;import java.lang.annotation.Documented; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; import javax.validation.Constraint; import javax.validation.Payload; import javax.validation.ReportAsSingleViolation; import javax.validation.constraints.NotNull; import javax.validation.constraints.Size; import javax.validation.constraintvalidation.SupportedValidationTarget; import javax.validation.constraintvalidation.ValidationTarget;Documented Constraint(validatedBy {} ) SupportedValidationTarget({ValidationTarget.ANNOTATED_ELEMENT}) Target({ElementType.METHOD, ElementType.FIELD, ElementType.ANNOTATION_TYPE, ElementType.CONSTRUCTOR, ElementType.PARAMETER}) Retention(RetentionPolicy.RUNTIME) ReportAsSingleViolation NotNull Size(min 1 ) public interface NotEmpty {String message() default {org.hibernate.validator.constraints.NotEmpty.message};Class?[] groups() default {};Class? extends Payload[] payload() default {};Target({ElementType.METHOD, ElementType.FIELD, ElementType.ANNOTATION_TYPE, ElementType.CONSTRUCTOR, ElementType.PARAMETER})Retention(RetentionPolicy.RUNTIME)Documentedpublic interface List {NotEmpty[] value();} }2、编写身份证校验自定义注解类也必须有message、groups、payload. package com.zzidc.web.validator;import javax.validation.Constraint; import javax.validation.Payload; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target;/** Description //TODO* Date 2019/3/29 17:22* Param* return**/ //注解是指定当前自定义注解可以使用在哪些地方这里仅仅让他可以使用在方法上和属性上 Target({ElementType.METHOD,ElementType.FIELD}) //指定当前注解保留到运行时 Retention(RetentionPolicy.RUNTIME) //指定了当前注解使用哪个类来进行校验。 Constraint(validatedBy IdCardValidator.class) // public interface IsIdCard {String message();// default 关键字 接口中被default修饰的方法在类实现这个接口时不必必须实现这个方法Class?[] groups() default { };// Class? 表示不确定的java类型// ClassT 表示java类型// ClassK,V 分别代表java键值中的key value// ClassE 代表ElementClass? extends Payload[] payload() default {}; }3. 编写校验注解的逻辑类IdCardValidator.class该类必须实现ConstraintValidator package com.zzidc.web.validator;import com.zzidc.web.service.IdCardValidatorService; import org.springframework.beans.factory.annotation.Autowired;import javax.validation.ConstraintValidator; import javax.validation.ConstraintValidatorContext;/*** ClassName IdCardValidator* Description 校验注解的校验逻辑* Date 2019/3/29 17:23**/ public class IdCardValidator implements ConstraintValidatorIsIdCard,String{Autowiredprivate IdCardValidatorService idCardValidatorService;/** Description 校验前的初始化工作* Date 2019/3/29 17:27* Param [isIdCard]* return void**/Overridepublic void initialize(IsIdCard isIdCard) {String message isIdCard.message();System.out.println(自定义的message信息是:.concat(message));}/** Description 具体的校验逻辑* Date 2019/3/29 17:29* Param [s, constraintValidatorContext]* return boolean**/Overridepublic boolean isValid(String s, ConstraintValidatorContext constraintValidatorContext) {return idCardValidatorService.volid(s);} }我们将具体校验逻辑抽出来抽成一个service package com.zzidc.web.service;/*** ClassName IdCardValidatorService* Description TODO* Date 2019/3/29 17:34**/ public interface IdCardValidatorService {boolean volid(String value); }service实现类 package com.zzidc.web.service.impl;import com.zzidc.web.service.IdCardValidatorService; import com.zzidc.web.utils.IdCardUtils; import org.springframework.stereotype.Service;/*** ClassName IdCardValidatorServiceImpl* Description TODO* Date 2019/3/29 17:35**/ Service public class IdCardValidatorServiceImpl implements IdCardValidatorService {Overridepublic boolean volid(String value) {return IdCardUtils.isValidIdCard(value);} }身份证工具校验类: package com.zzidc.web.utils;import org.apache.commons.lang3.StringUtils;/*** ClassName IdCardUtils* Description TODO* Date 2019/3/29 17:37**/ public class IdCardUtils {public static boolean isValidIdCard(String value){String regex ^(0|86|17951)?(13[0-9]|15[012356789]|17[678]|18[0-9]|14[57])[0-9]{8}$;if (StringUtils.isBlank(value)) {return false;}return value.matches(regex);} }
http://www.w-s-a.com/news/515800/

相关文章:

  • 摄影网站设计思想视觉传达毕业设计作品网站
  • 需要优化的网站有哪些设计装修app
  • 数据型网站建设东莞好的网站国外站建设价格
  • 网络营销方法有哪些举例seo应用领域有哪些
  • 建设银行官方网站官网做网站的专业叫什么
  • 矿区网站建设濮阳做网站的公司有哪些
  • 有什么网站可以自己做书甘肃建设厅网站首页
  • 门户网站建设哪专业怎么把自己做的网站登录到网上
  • 如何做网站小编餐饮业手机php网站
  • 备案 网站商城网站设计公司排名
  • 汕头做网站优化公司seo软件简单易排名稳定
  • 如何做众筹网站微网站设计平台
  • 富平做网站十堰优化seo
  • 免费网站空间可访问wordpress弹窗注册代码
  • 东莞网站建设教程南京做代账会计在哪个网站上找
  • 网站开发好了 怎么发布wordpress数据库缓存插件
  • 工业电商网站怎么配色社交网站建设平台
  • 使用pycharm网站开发建一个网站需要什么条件
  • 网站建设哪些是需要外援的问题wordpress商品展示主题
  • 定制网站开发的目的是什么wordpress 增加按钮
  • 建设单位网站经费请示wordpress模板添加授权
  • 国外的电商网站有哪些为进一步加强校园网站建设
  • 专业集团门户网站建设企业微信商城和网站建设
  • 多少钱可以做网站找网络公司做推广费用
  • python php 网站开发网络营销师是干什么的
  • 网站建设设计方案动漫制作专业学校
  • 吴江区建设用地申报网站包装设计模板设计素材
  • 快速建站的公司wordpress 元数据定义
  • 网站seo分析工具网站标题用空格 逗号影响seo
  • 基金项目实验室信息网站建设wordpress文章新窗口打开