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

做网站商城多少钱重庆建筑行业认证培训网

做网站商城多少钱,重庆建筑行业认证培训网,企业网站设计北京,网站优化任务很多时候我们需要使用不少if、else等等逻辑判断及验证,这样在进行一些重复的参数校验会很麻烦,且以后要维护也会吃力。 而这样就可以使用javax.validation。验证(Validation)常见的验证操作包括验证数据的类型、格式、长度、范围、…

  很多时候我们需要使用不少if、else等等逻辑判断及验证,这样在进行一些重复的参数校验会很麻烦,且以后要维护也会吃力。

  而这样就可以使用javax.validation验证(Validation)常见的验证操作包括验证数据的类型、格式、长度、范围、唯一性等

javax.validation 包:Java SE 6+ 中引入了 javax.validation 包,作为 Bean Validation 规范的一部分。这个包提供了一组注解和接口,可以方便地进行数据验证。

<!--        validation组件依赖-->
<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-validation</artifactId>
</dependency>

  而对于一般写在业务逻辑类中的参数校验语句,可以省略。如将@Valid注解填写在登录接口的方法参数中:

@PostMapping("/login")
public RespBean login(@Valid @RequestBody User user) {log.info("{}", user);return userService.login(user);
}
  • @Valid 注解对入参进行相应的校验:

注解使用在方法参数上,然后对于参数的校验要求可去参数的实体类进行校验条件的填写。

/*** @author Z* @date 2023/9/27 21:25*/
@Data
public class User {@NotNull //账号非空//这个@Mobile是自定义判断注解,下面有对其的创建进行详细的讲解@Mobile(required = true) private String mobile;
​@NotNull //密码非空@Length(min = 32)  //长度的限制private String password;
}

以及如: @Size(min=1, max=12) 代表:长度在 1 ~ 12 字符之间。其他一些判断的注解可以去该导入的外部库查看。

也可以自定判断条件注解:如@Mobile这个自定义的注解:

1.创建软件包:Validation

2.创建需要的注解:Mobile

3.而对于这个注解的写法,直接去拷贝javax.validation 包中已经写好的注解,如:@Notnull注解进行修改:(有报错的地方就删除不用即可)

@Notnull注解如下:
@Target({ElementType.METHOD, ElementType.FIELD, ElementType.ANNOTATION_TYPE, ElementType.CONSTRUCTOR, ElementType.PARAMETER, ElementType.TYPE_USE})
@Retention(RetentionPolicy.RUNTIME)
@Repeatable(NotNull.List.class)  //爆红了删除
@Documented
@Constraint(validatedBy = {}) //校验规则的定义
public @interface NotNull {String message() default "{javax.validation.constraints.NotNull.message}";//修改校验的消息
​Class<?>[] groups() default {};
​Class<? extends Payload>[] payload() default {};
​
}

而在这里在添加一条属性:(代表必填)

 boolean required() default true;

  • 自定义的@Mobile如下:

/*** @author Z* @date 2023/9/28 8:53*/
@Target({ElementType.METHOD, ElementType.FIELD, ElementType.ANNOTATION_TYPE, ElementType.CONSTRUCTOR, ElementType.PARAMETER, ElementType.TYPE_USE})
@Retention(RetentionPolicy.RUNTIME)
@Documented
//自己定义校验规则的一个类:MobileValidator.class (手机号码校验规则类)
//将自定义规则类放进@Constraint(validatedBy={}) 中
@Constraint(validatedBy = {MobileValidator.class})
public @interface Mobile {
​boolean required() default true;
​//信息,抛出的是BindException,前端页面接收的话,我们要进行异常的捕获String message() default "手机号码格式错误";
​Class<?>[] groups() default {};
​Class<? extends Payload>[] payload() default {};
}

而我们需要进行自己定义检验规则,创建一个校验规则类,并将其放进@Constraint(validatedBy={}) 中

  • 自定义校验规则类:

/*** 手机号码校验规则** @author Z* @date 2023/9/28 8:56*/
public class MobileValidator implements ConstraintValidator<Mobile, String> {
​private boolean required = false;
​//初始化:获取是否需要是必填的@Overridepublic void initialize(Mobile constraintAnnotation) {//获取到填的值:true或者falserequired = constraintAnnotation.required();}
​@Overridepublic boolean isValid(String value, ConstraintValidatorContext context) {//必填:则使用手机号码校验工具类去校验if (required){return ValidatorUtil.Mobile(value);//非必填:}else {if (StringUtils.isEmpty(value)){ //传的号码为空return true;}else {//传的号码非空,则使用手机号码校验工具类去校验return ValidatorUtil.isMobile(value);}}}
}
  • 而对于手机号码的校验工具类:

添加依赖:

<dependency><groupId>org.apache.commons</groupId><artifactId>commons-lang3</artifactId>
</dependency>

使用正则表达进行手机号码的校验:

import org.apache.commons.lang3.StringUtils;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
​
/*** 手机号码校验类 (使用正则表达式)** @author Z* @date 2023/9/27 21:45*/
public class ValidatorUtil {
​private static final Pattern mobile_pattern = Pattern.compile("[1]([3-9])[0-9]{9}$");
​public static boolean Mobile(String mobile) {if (StringUtils.isEmpty(mobile)){return false;}Matcher matcher = mobile_pattern.matcher(mobile);return matcher.matches();}
}

http://www.yayakq.cn/news/552772/

相关文章:

  • 安徽做网站的公司网络营销内容有哪些方面
  • 涿鹿网站建设更合网站开发
  • 国内精美网站欣赏制作图
  • 旅游网站建设公司免费源码资源网
  • 做网站服务器可以挂到外地么wordpress 自适应门户
  • 广东网站seo营销客户资料管理软件免费版
  • 深圳网站建设深圳企业网站建设天津网上办事
  • 自己的电脑做网站当服务器使用建设银行手机银行登录网站
  • 中国三线建设网站拐个娇妻做晚餐在哪个网站连载呢
  • 在手机上做网站网站开发人员属于什么
  • 网站开发课设心得眉山北京网站建设
  • 做网站哪里最好少儿编程课程
  • 企业网站建设策划书方案范文网页设计宣传推广方案
  • 网站建设心得体会500字做公司网站要收费吗
  • 企业建站免费模板新款手机2023款排行榜
  • 做建设网站的活的兼职怎样搞网络营销
  • 成都网络优化网站建设门户网站开发视频教学
  • 网站seo优化很好徐州百度网络点赞六安商业网站建设费用
  • 宝应县建设工程管理局网站如何学做网站平台
  • 北京建设网站设计设计上海展览
  • 湖南省做网站的公众号小程序商城怎么制作
  • 做汽车脚垫版的网站爱最好网站建设
  • 网站运行维护上海市公共招聘网官网
  • 搭建微信小程序需要服务器吗企业seo是什么意思
  • 各类网站pr免费模板网站
  • 营销型网站建设新感觉建站网站开发怎么进行数据库连接
  • 网站如何做才容易被搜索到wordpress多地区
  • 何苦做游戏网站网站建设价格情况
  • vps云主机可以建立几个网站张家港网站设计制作
  • 天津狐臭在哪里做津门网站I品牌logo设计理念介绍