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

网站建设微信营销代写

网站建设微信营销,代写,各自的特点是什么,临沂的各类网站建设目录 一、导入依赖 二、实现步骤 三、分组校验 四、自定义校验 一、导入依赖 <dependency><groupId>javax.validation</groupId><artifactId>validation-api</artifactId><version>2.0.1.Final</version></dependency> 二…

目录

一、导入依赖

二、实现步骤

三、分组校验

四、自定义校验


一、导入依赖

        <dependency><groupId>javax.validation</groupId><artifactId>validation-api</artifactId><version>2.0.1.Final</version></dependency>

二、实现步骤

1、给实体类对应的属性添加注解:javax.validation.constraints,并定义自己的message提示,如下所示:

/*** 品牌名*/
@NotBlank(message = "品牌名不能为空")
private String name;

2、开启校验功能@Valid,校验错误以后会有默认的响应,但是以上面的message优先

  /*** 保存*/@RequestMapping("/save")//@RequiresPermissions("product:brand:save")public R save(@Valid @RequestBody BrandEntity brand){brandService.save(brand);
​return R.ok();}

3、给校验的Bean后紧跟一个BindingResult,就可以获取到校验的结果

  /*** 保存*/@RequestMapping("/save")//@RequiresPermissions("product:brand:save")public R save(@Valid @RequestBody BrandEntity brand, BindingResult Result){brandService.save(brand);
​return R.ok();}

三、分组校验

1、分组校验(多场景的复杂校验),当新增和更新校验的字段个数不一样时,可以采用分组,首先给属性上注解后面添加分组,标注什么情况需要进行校验

先添加两个接口,不需要实现什么

public interface AddGroup {
}
public interface UpdateGroup {
}

属性上标注类型

/*** 品牌id*/
@NotNull(message = "修改必须指定品牌id", groups = UpdateGroup.class)
@Null(message = "新增不能指定id", groups = AddGroup.class)
@TableId
private Long brandId;

然后是方法上改为validated注解,可以添加分组类型

    /*** 保存*/@RequestMapping("/save")public R save(@Validated(AddGroup.class) @RequestBody BrandEntity brand){brandService.save(brand);
​return R.ok();}/*** 修改*/@RequestMapping("/update")//@RequiresPermissions("product:brand:update")public R update(@Validated(UpdateGroup.class) @RequestBody BrandEntity brand){brandService.updateById(brand);
​return R.ok();}

注意,默认没有指定分组的分组注解是不生效的,比如@Validated(AddGroup.class)只有标注了AddGroup分组的才会校验,没有指定分组的只会在@Validated,也就是没指定分组才会校验

四、自定义校验

1、编写一个自定义校验注解

@Target({ElementType.METHOD, ElementType.FIELD, ElementType.ANNOTATION_TYPE, ElementType.CONSTRUCTOR, ElementType.PARAMETER, ElementType.TYPE_USE})
@Retention(RUNTIME)
@Documented
@Constraint(validatedBy = { ListValueConstraintValidator.class}) //这里可以放置多个校验器,我们只写了对integer的校验,还可以写别的类型,springboot会自动匹配对应的校验器
public @interface ListValue {String message() default "{com.atguigu.common.valid.ListValue.message}";
​Class<?>[] groups() default {};
​Class<? extends Payload>[] payload() default {};
​int[] vals() default {};
}
​
​

2、编写一个自定义校验器

public class ListValueConstraintValidator implements ConstraintValidator<ListValue, Integer> {private Set<Integer> set = new HashSet<>();
​// 初始化方法@Overridepublic void initialize(ListValue constraintAnnotation) {int[] vals = constraintAnnotation.vals();for(int val: vals) {set.add(val);}}
​/** @Description* @Author zoe* @Date 2023/7/13 16:52* @Param integer就是要进行校验的值**/@Overridepublic boolean isValid(Integer integer, ConstraintValidatorContext constraintValidatorContext) {return set.contains(integer);}
}

3、关联自定义校验注解和自定义校验器

@Constraint(validatedBy = { ListValueConstraintValidator.class}) //这里可以放置多个校验器,我们只写了对integer的校验,还可以写别的类型,springboot会自动匹配对应的校验器
public @interface ListValue

4、属性上面标注该注解

/*** 显示状态[0-不显示;1-显示]*/@ListValue(vals = {0, 1}, groups = AddGroup.class)private Integer showStatus;

http://www.hkea.cn/news/524098/

相关文章:

  • 网站建设外包协议天津网站排名提升
  • 邯郸教育行业网站建设百度推广代理商查询
  • 政府网站有哪些网站seo最新优化方法
  • 做广告牌子seo外链工具
  • 微信页面设计网站兰州网络推广技术
  • 上门做网站搜狗站长工具
  • wordpress用户邮箱验证码百度seo搜索引擎优化培训
  • 360极速怎么屏蔽网站新闻热点大事件
  • 购物app开发价格表站长工具seo排名
  • 微餐饮网站建设营销型网站建设方案
  • 高端网站建设公司好不好2020国内搜索引擎排行榜
  • 网站建设服务公司选哪家比较好?苏州优化收费
  • 中国建设银行河南省分行网站推广信息哪个平台好
  • 网站建设官网免费模板杭州seo优化
  • 绍兴网站建设谷歌搜索引擎在线
  • 网站的会员认证怎么做黑龙江新闻头条最新消息
  • 做网站如何分工百度推广登录平台客服
  • 网站建设如何提案万网域名注册信息查询
  • 创意二维码制作网站企业网络营销推广案例
  • 论坛型网站怎么做百度高级检索入口
  • 做百度移动网站排搜素引擎优化
  • 公司创建一个网站需要多少钱想做百度推广找谁
  • 做文献ppt模板下载网站有哪些常德政府网站
  • 青岛网站建设公司排行外链工具在线
  • 网站怎么做显得简洁美观seo数据是什么意思
  • 阿里巴巴开通诚信通后网站怎么做网络优化网站
  • 东莞手机网站价格便宜个人免费建站软件
  • 电子商务网站建设的步骤一般为百度100%秒收录
  • 做企业网站怎么样免费的推广软件下载
  • 拓普网站建设美国搜索引擎