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

Java中接口入参验证

Java中接口入参验证

文章目录

  • Java中接口入参验证
    • 一:@RequestParam、@RequestBody
    • 二:使用方法

一:@RequestParam、@RequestBody

@RequestParam:适用于Get请求且content-type为application/x-www-form-urlencoded

@RequestBody:适用于post请求且content-type为非application/x-www-form-urlencoded类型,一般为application/json

二:使用方法

1、入参为@RequestParam或@RequestBody时,不用加@valid和@validated;

2、入参为@NotNull时要在方法上加@valid或@validated,或者在类上加@Validated(@valid不能作用于类上),这样@NotNull才能起作用。

@Valid
@GetMapping("/exam-info")
public Boolean getInfo(@NotNull(message="examId不能为空")Long examId){......}

3、当入参为实体对象时,需要在方法上加@Valid或@Validated或者在参数前加@Valid或@Validated,或者在类上加@Validated

@Valid
@GetMapping("/exam-info")
public Boolean getInfo(User user){......}@GetMapping("/exam-info")
public Boolean getInfo(@Valid User user){......}@Validated
@GetMapping("/exam-info")
public Boolean getInfo(User user){......}@GetMapping("/exam-info")
public Boolean getInfo(@Validated User user){......}public Class User{@NotNull"id不能为空"private Integer id;}

4、嵌套验证

 @valid作用于属性上有嵌套验证作用,@validated不能作用于属性上,如下代码在User类的属性car上添加@valid注解,当传参id为空时会报错。
@GetMapping("/exam-info")
public Boolean getInfo(@Valid User user){.....}@GetMapping("/exam-info")
public Boolean getInfo(@Validated User user){.....}public class User{@Valid@NotNull("car不能为空")private Car car;........
}public class Car{@NotNull("id不能为空")private Integer id;........
}
http://www.dtcms.com/a/391966.html

相关文章:

  • 【高并发内存池——项目】central cache 讲解
  • vue3 <el-image 的:src=“event.fileName[0]“ 长度为 “0“ 的元组类型 “[]“ 在索引 “0“ 处没有元素。
  • 问题记录: 跨服务接口调用日期类型字段格式转换问题
  • 亚马逊关键词按什么角度筛选?从人工摸索到智能化系统的全面升级
  • C语言基础【19】:指针6
  • 正则表达式【阿里版】
  • 使用云端GPU训练Lerobot
  • RNA-seq分析之基因ID转换
  • [视图功能9] 图表联动与多维度分析:打造协同动态的数据洞察仪表盘
  • Python基础 6》数据类型_列表(List)
  • 40、大模型工程平台全景对比 - 技术选型指南
  • BEVformer训练nusenes-mini数据集
  • 《Unity3D NavMeshAgent与Rigidbody移动同步问题的技术拆解》
  • Psy Protocol 技术核心解读
  • PS练习3:使用变形将图片放到实际场景中
  • 在排序数组中查找元素的第一个和最后一个位置
  • 一条命令在ubuntu安装vscode
  • 【开题答辩全过程】以 ASP.NET抗疫物资管理系统为例,包含答辩的问题和答案
  • 探饭 - 字节跳动推出的AI美食推荐助手
  • ZCC5515_耐压9.5V ,超低静态功耗5uA,完全替代CS5515
  • 端脑云AI生图体验:从提示词到精美肖像
  • 临界处有一条看不见的河
  • JavaWeb--day8-- Mybatis(正式)
  • 基于WSL BES2710编译环境搭建方法
  • 模块化设计逻辑:太阳镜气流单元 / 耳机可拆卸结构的装配精度与兼容性分析
  • 半监督学习实战:如何用少量标注数据获得媲美全监督学习的性能?
  • 作业3(初学CSS)
  • CSS基础(总结)
  • 【信创云架构 PACS系统】全网首发-基于JDK17+Vue3全新开发的信创国产化系统
  • 若依vue项目里面,使用到oss,这个 是什么