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

网站建设公司沈阳做网站域名费一般多少钱

网站建设公司沈阳,做网站域名费一般多少钱,关于申请网站建设维护经费,2023年电商数据报告文章目录 SpringBoot中Validated或Valid注解校验的使用1. 添加依赖2. 使用示例准备2-1 测试示例用到的类2-2 实体Dto,加入校验注解2-2 Controller 3. 示例测试4. Valid 和 Validated注解详解4-1 常用规则注解4-2 分组验证4-2-1 示例准备4-2-2 Controller接口4-2-3 P…

文章目录

  • SpringBoot中@Validated或@Valid注解校验的使用
    • 1. 添加依赖
    • 2. 使用示例准备
      • 2-1 测试示例用到的类
      • 2-2 实体Dto,加入校验注解
      • 2-2 Controller
    • 3. 示例测试
    • 4. @Valid 和 @Validated注解详解
      • 4-1 常用规则注解
      • 4-2 分组验证
        • 4-2-1 示例准备
        • 4-2-2 Controller接口
        • 4-2-3 PostMan测试
      • 4-3 嵌套校验
        • 4-3-1 示例【复杂对象嵌套校验】

SpringBoot中@Validated或@Valid注解校验的使用

1. 添加依赖

 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-validation</artifactId>
</dependency>

2. 使用示例准备

2-1 测试示例用到的类

@AllArgsConstructor
@Data
public class ResponseDto<T> {private int code;private String message;private T data;
}
public class ResponseUtil {public static  <T> ResponseDto success(T data){return new ResponseDto(200,"success",data);}public static <T> ResponseDto fail(T data){return new ResponseDto(1,"fail",data);}
}
/*** 全局异常处理类*/
@Slf4j
@ResponseBody
@ControllerAdvice
public class GlobalExceptionHandler {@ExceptionHandler(value = Exception.class)private ResponseDto handlerParameterCheckException(Exception e) {return ResponseUtil.fail(e.toString());}}

2-2 实体Dto,加入校验注解

// @NotNull表示参数不能为空
// @Min表示数值的最小值
// @Max表示数值的最大值
// message属性用来设置验证失败的提示信息
@Data
public class UserInfoDto {@NotNull(message = "用户姓名不能为空")private String userName;@NotNull(message = "年龄不能为空")@Min(value = 18,message = "年龄不能小于18")@Max(value = 100,message = "年龄不能超过100")private Integer age;
}

2-2 Controller

@RestController
@RequestMapping("/Api/v1.0")
public class Demo1Controller {@PostMapping("/user")public ResponseDto validUserInfo(@Validated @RequestBody UserInfoDto param){return ResponseUtil.success(param);}
}

3. 示例测试

使用PostMan发起请求
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

4. @Valid 和 @Validated注解详解

4-1 常用规则注解

下面表格列出常用校验类及主要功能。
这些注解必须配合@Valid或@Validated使用,通过这两个注解开启校验

在这里插入图片描述
在这里插入图片描述

注 :
对于长度的校验基本都支持字符串、集合、Map、数组的长度。
下面是@Valid和@Validated的区别。

在这里插入图片描述

// 注 :嵌套验证。
//	JavaBean A中某个属性, 其类型是JavaBean B,对A进行验证的同时验证B。

相同点:

  • @Valid 和 @Validated 两者都可以对数据进行校验,在校验字段上加上规则注解(@NotNull,
    @NotEmpty等)都可以对 @Valid 和 @Validated 生效。
  • @Valid 和 @Validated 两者都可以与BindingResult bindingResult配对出现,
    并且形参顺序是固定的(一前一后),controller对BindingResult处理返回校验提示。
  • @Valid 和 @Validated 两者也可以单独使用,单独使用当校验不通过时会抛出
    BindException异常。这时需要再写一个全局校验异常捕获处理类,然后返回校验提示。

不同点

  • @Valid可以用在方法、构造函数、方法参数和成员属性(field)上;
  • @Valid可以进行嵌套校验,但是,需要在嵌套的字段上面加上@Valid注解; @Valid不支持分组。
  • @Validated可以用在方法、构造函数、方法参数;但是不能用在成员属性(字段)上;
  • @Validated不支持嵌套校验,因为不能用在成员属性(字段)上;
  • @Validated支持分组验证,以在入参验证时,根据不同的分组采用不同的验证机制;

4-2 分组验证

4-2-1 示例准备
/*** 成年人*/
public interface Adult {
}/*** 未成年人*/
public interface Juveniles {
}
//	提示
//		主要的修改是在校验注解中添加了groups属性,用来指定当前的校验针对哪一个组。
//		@Max(value = 100,message = "年龄不能超过100",groups = Adult.class)和
//		@Min(value = 18,message = "年龄不能小于18",groups = Adult.class)
//			指定了成年人用户信息的年龄属性验证规则。
//		@Max(value = 17,message = "年龄不能大于17岁",groups = Juveniles.class)
//			指定了未成年人用户信息的年龄要小于18岁。@Data
public class UserInfoDTO {@NotNull(message = "用户姓名不能为空")private String userName;@NotNull(message = "年龄不能为空")@Min(value = 18,message = "年龄不能小于18",groups = Adult.class)@Max(value = 100,message = "年龄不能超过100",groups = Adult.class)@Max(value = 17,message = "年龄不能大于17岁",groups = Juveniles.class)private Integer age;
}
4-2-2 Controller接口
/*** 成年人  --> @Validated(value = Adult.class):仅校验成年人,即有groups = Adult.class的属性* @param param* @return*/
@PostMapping("/userAdult")
public UserInfoDTO validUserAdult(@Validated(value = Adult.class) @RequestBody UserInfoDTO param){return param;
}/*** 未成年人    --> @Validated(value = Adult.class):仅校验未成年人,即有groups = Juveniles.class的属性* @param param* @return*/
@PostMapping("/userJuveniles")
public UserInfoDTO validUserJuveniles(@Validated(value = Juveniles.class) @RequestBody UserInfoDTO param){return param;
}
4-2-3 PostMan测试

在这里插入图片描述
在这里插入图片描述

4-3 嵌套校验

//	1. @Validated无法单独提供嵌套验证功能。
//		不能用在成员属性上,
//		能配合嵌套验证注解@Valid进行嵌套验证
//	2. 在嵌套对象字段上加上@Valid注解,如:
public class User {@Validprivate Address address;
}
4-3-1 示例【复杂对象嵌套校验】
@Data
public class Object1 {@Length(max = 50,message = "长度不能超过50位字符")@NotBlank(message = "名称不能为空")private String name;@NotNull(message = "不能为空")private Integer grade;@NotNull(message = "计分展示不能为空")private Integer scoreDimension;@NotNull(message = "obj2s不能为空")/*** 嵌套验证时必须使用 @Valid注解*/@Validprivate List<Object2> obj2s;
}@Data
public class Object2{@Length(max = 50, message = "长度不能超过50位字符")@NotBlank(message = "分类名称不能为空")private String categoryName;/*** 嵌套验证时必须使用 @Valid注解*/@Validprivate List<Object3> obj3s;
}@Data
public class Object3{@NotNull(message = "分值不能为空")@Max(value =1000 , message = "分值最大不能超过1000")private Integer score;@Size(max = 500, message = "最多可输入500个字符")private String standards;@Size(max = 10, message = "标最多10条")private String[] urls;@NotNull(message = "不能为空")private Integer[] rating;
}//controller校验@PostMapping("/check")public Result<Void> check( @Validated @RequestBody Object1 obj1) {return servei1.check(obj1);}
http://www.yayakq.cn/news/692269/

相关文章:

  • 南充微网站建设网站建设需放在哪个科目
  • wordpress建站位置网站设计风格的关键词
  • 网站需要前台后台wordpress主题 反盗版
  • 网站建设基础与实践html网页制作app手机版
  • 保定商城网站建设金华网站制作推广
  • 静态双语企业网站后台源码1688货源网一件代发玩具
  • 织梦网站地图模板嵌入式项目外包平台
  • html5制作网站开发网站关键词排名手机优化软件
  • 南通企业网站怎么建设房地产网站 模板
  • 大唐工作室 网站制作wordpress wlw
  • 杭州投资公司自适应网站珠海市手机网站建设公司
  • 白酒网站建设龙华企业网站建设
  • 苏州竞价托管许昌seo推荐
  • 如何做网站优化的内容视觉网络网站
  • 深圳网站开发建设培训机构如何把网站做成app
  • 模仿别人网站侵权洛阳网站建设学校
  • 企业网站使用不规范地图如何处罚中国十大奇迹工程
  • 广州建设厅网站首页wordpress怎么静态页面
  • 郴州网站制作公司有哪些阿里巴巴网站域名
  • 长沙教育网站开发安仁网络推广软件定制开发
  • 毕业设计可以做哪些简单网站ppt中网站布局图怎么做
  • 江门网站制作华企立方做哪一类网站容易有排名
  • 网站建设上海网站制作c2c网站管理系统
  • 网站开发实训指导书知名企业官网
  • 深圳营销型网站建设多少钱无人一区二区区别是什么
  • 旅游攻略网站开发背景互联网政务服务平台
  • 外汇跟单社区网站开发北京企业宣传片制作公司
  • 网站建设技巧讠金手指排名26军事前沿最新消息
  • 建设局网站公告可以做招商的网站
  • 网站ip地址大全个人网站源码html