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

滨海新区商城网站建设域名服务器地址查询

滨海新区商城网站建设,域名服务器地址查询,小型网上商城系统,上海中学初中部一、场景分析 我们使用 SpringMVC 在 Controller 层#xff0c;对身份证号进行数据校验的话#xff0c;经常采用以下方式#xff1a; RestController RequiredArgsConstructor RequestMapping(member) public class MemberController {// 身份证号码正则表达式…一、场景分析 我们使用 SpringMVC 在 Controller 层对身份证号进行数据校验的话经常采用以下方式 RestController RequiredArgsConstructor RequestMapping(member) public class MemberController {// 身份证号码正则表达式String regex ^(^[1-9]\\d{5}(18|19|([23]\\d))\\d{2}((0[1-9])|(10|11|12))(([0-2][1-9])|10|20|30|31)\\d{3}[0-9Xx]$)|(^[1-9]\\d{5}\\d{2}((0[1-9])|(10|11|12))(([0-2][1-9])|10|20|30|31)\\d{2}[0-9Xx]$)$;PostMapping(/register)public RVoid register(RequestBody Valid Member member) {Pattern pattern Pattern.compile(regex);Matcher matcher pattern.matcher(member.getIdNo());if (!matcher.matches()) {return R.fail(不是有效的身份证号);}System.out.println(member);return R.success();} } 我们当然可以采用上面的方式进行数据校验但这种方式不是很优雅 如果项目中还有别的对象需要进行身份证号校验那么同样的代码就会在项目里散落一地。 Javax Validation 提供给我们另一种优雅的方式进行逻辑重复的数据校验。 二、代码实现 1、创建自定义校验注解 首先创建一个自定义的校验注解用于校验字符串是否为有效的身份证号格式 package com.study.annotations;import com.study.config.IdCheckValidator;import javax.validation.Constraint; import javax.validation.Payload; import java.lang.annotation.*;Target({ElementType.METHOD, ElementType.FIELD, ElementType.ANNOTATION_TYPE, ElementType.CONSTRUCTOR, ElementType.PARAMETER, ElementType.TYPE_USE}) Retention(RetentionPolicy.RUNTIME) Documented Constraint(validatedBy {IdCheckValidator.class} ) public interface IdCheck {String message() default 不是有效的身份证号;Class?[] groups() default {};Class? extends Payload[] payload() default {}; } 2、创建校验器实现类 创建一个实现 ConstraintValidator 接口的类来实现自定义校验逻辑 package com.study.config;import com.study.annotations.IdCheck;import javax.validation.ConstraintValidator; import javax.validation.ConstraintValidatorContext; import java.util.regex.Matcher; import java.util.regex.Pattern;public class IdCheckValidator implements ConstraintValidatorIdCheck, String {// 身份证号码正则表达式String regex ^(^[1-9]\\d{5}(18|19|([23]\\d))\\d{2}((0[1-9])|(10|11|12))(([0-2][1-9])|10|20|30|31)\\d{3}[0-9Xx]$)|(^[1-9]\\d{5}\\d{2}((0[1-9])|(10|11|12))(([0-2][1-9])|10|20|30|31)\\d{2}[0-9Xx]$)$;Overridepublic void initialize(IdCheck constraintAnnotation) {ConstraintValidator.super.initialize(constraintAnnotation);}Overridepublic boolean isValid(String idNo, ConstraintValidatorContext constraintValidatorContext) {Pattern pattern Pattern.compile(regex);Matcher matcher pattern.matcher(idNo);return matcher.matches();} }3、在实体类中使用自定义注解 package com.study.member.entity;import com.study.annotations.IdCheck; import lombok.Data;Data public class Member {// 自定义注解IdCheckprivate String idNo; } 4、在控制器中进行数据绑定和校验  package com.study.member.controller;import com.study.memberentity.Member; import com.study.common.base.R; import lombok.RequiredArgsConstructor; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController;import javax.validation.Valid;RestController RequiredArgsConstructor RequestMapping(member) public class MemberController {PostMapping(/register)public RVoid register(RequestBody Valid Member member) {System.out.println(member);return R.success();} }5、测试 输入一个格式错误的身份证号 ### POST http://localhost:8080/member/register Content-Type: application/json {idNo: 811111111111111111} 输出 {code: -1,msg: 不是有效的身份证号 } 输入一个格式正确的身份证号(该身份证号是我随机生成的) ### POST http://localhost:8080/member/register Content-Type: application/json {idNo: 12010319881011691X} 输出 {code: 0,msg: success } 三、总结 ConstraintValidator 是 javax validation 规范提供给我们的一个实现数据校验的接口。 像 hibernate.validator 就有很多这个接口的实现像我们常见的 NotNullValidatorMaxValidatorForMonetaryAmountMinValidatorForMonetaryAmount 等都是它的实现。以上代码参考 NotNullValidator 的实现。
http://www.eeditor.cn/news/125746/

相关文章:

  • 哪个建设网站好广东深圳
  • 邢台网站制作地方兰州做网站优化的公司
  • 鞍山手机网站建设在哪个网站做注册资本变更
  • 网站美工效果图怎么做鞍山哪里做网站
  • 给设计网站做图是商用吗免费空间刷赞
  • 微信网站建设教程c2c的网站有哪些
  • 专业做网站 上海易语言怎么做点击按钮打开网站
  • 商城网站设计公司怎么样asp网站开发模板
  • vs2017移动网站开发如何做外贸网站优化推广
  • 建设报名系统是正规网站吗网络营销策划方案基本思路
  • 网站托管方案服装 多语言 网站源码
  • 网站制作网站做网南宁百度seo推广
  • 江苏城乡建设部网站wordpress管局备案
  • 成都网站seo分析中国建设银行网站官网
  • 网站建设电商考试做一个天猫店铺要多少钱
  • 深圳互联网公司网站做网站要sql 数据库名字账号密码
  • 文章网建站制作企业网站的版式
  • html5手机网站发布营销型 网站开发
  • 湖北省建设厅招骋网站免费网站app代码
  • 如何修改wordpress手机模板外贸网站seo
  • 福州网站建设yfznkj山东城市建设职业学院图书馆网站
  • 网站建设交流会wordpress10和3优先级
  • 哪个网站做动图汽车cms系统
  • 佛山seo网站排名app定制小程序开发
  • 装修公司网站模板下载网站首页制作流程
  • 做问卷网站好中企动力z邮箱登录手机
  • 用html5做的商务网站销售管理系统业务处理流程
  • 建个网站需要多少钱?建网站要多少钱相机网站建设策划书
  • 园林工建设有限公司网站网站开发需求分析参考文献
  • 广西智能网站建设平台wordpress评论加入点赞