springboot+swagger项目中,controller引入@NotEmpty等校验注解的问题

news2024/9/29 5:32:32

springboot项目

springboot+swagger项目中,controller层如果使用对基本数据类型使用 @NotEmpty @Length 等校验注解,controller会获取不到值,加了@RequestBody后可以获取到了,但是前端传值content-type必须是text/plain。所以建议control而用VO类接收参数,而不是用基本数据类型接收参数。

但ssm项目是没有这个问题的

以下都是controller层

不加@NotEmpty,可以接收到参数

    @PostMapping("find1")
    @ResponseBody
    public JsonResult find1(String userId) {
        return JsonResult.ok(userId);
    }

加@NotEmpty后接收不到参数

    @PostMapping("find2")
    @ResponseBody
    public JsonResult find2(@NotEmpty(message = "userId不能为空") String userId) {
        return JsonResult.ok(userId);
    }

@RequestBody @NotEmpty 可以接收到参数

但是与前端调试发现,前端发送请求的content-type 必须是 text/plain才可以。

    @PostMapping("find3")
    @ResponseBody
    public JsonResult find3(@RequestBody @NotEmpty(message = "userId不能为空") String userId) {
        return JsonResult.ok(userId);
    }

@NotEmpty(message = "userId不能为空") @RequestParam(value = "userId", required = false) 可以接收到参数

因为@RequestParam(“”)默认必传参数,没传的话,swagger就不会继续走下去。也就走不到@NotEmpty校验。

    @PostMapping("find4")
    @ResponseBody
    public JsonResult find4(@NotEmpty(message = "userId不能为空") @RequestParam(value = "userId", required = false) String userId) {
        return JsonResult.ok(userId);
    }

ssm项目

ssm项目就没这个问题。

    @PostMapping("find4")
    @ResponseBody
    public JsonResult find4(@NotEmpty(message = "userId不能为空") @RequestParam(value = "userId", required = false) String userId) {
        return JsonResult.ok(userId);
    }

看swagger发现,还是form表单提交,而不是application/json

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/545953.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

考研数据结构--树和二叉树(2)

文章目录 二叉树的遍历前序遍历中序遍历后序遍历层次遍历 不用栈的二叉树中序遍历算法Morris代码分析 二叉树的构造概述如何完成二叉树的构造**回顾****思考**各种遍历序列提供的信息二叉树遍历性质性质1性质2 线索化二叉树引入定义构造 堆堆的定义堆的性质堆的建立堆的元素插入…

GPT1解读:Improving Language Understanding by Generative Pre-Training

自然语言处理NLP是当代人工智能的关键领域,包含文本识别、智能问答等多个方向任务,通过监督学习方式一般需要大量带标签数据,而对某些特定任务,获取带标签数据成本非常高。GPT通过大量的未标记文本数据来学习一个通用预训练&#…

ZiKiT DICOM 存档(PACS)模态服务器 Crack

ZiKiT结合了DICOM存档(PACS),模态工作列表服务器和HL7消息代理,它们共享相同的数据库并相互通信。 最新版本 – ZiKiT 2020 ZiKiT 提供动态映射规则和消息结构定义,同时保持合规性并遵守标准。该套件使非程序员能够在…

电动力学:电偶极辐射场

电磁辐射的产生条件 存在时变源(时变的电荷源、时变的电流源,或时变的电磁场)时变源的频率应足够高(辐射系统的尺寸大小和电磁波波长差不多时,才有可能产生明显的辐射效应)波源电路必须开放(源电…

Android 如何获取有效的DeviceId

目录 前言官方唯一标识符建议使用广告 ID使用实例 ID 和 GUID不要使用 MAC 地址标识符特性常见用例和适用的标识符 解决方案DeviceIdANDROID_IDMac地址UUID补充 总结 前言 从 Android 10 开始,应用必须具有 READ_PRIVILEGED_PHONE_STATE 特许权限才能访问设备的不可…

新手建站:腾讯云轻量服务器安装宝塔镜像和使用方法

腾讯云轻量应用服务器宝塔面板怎么用?轻量应用服务器如何安装宝塔面板?在镜像中选择宝塔Linux面板腾讯云专享版,在轻量服务器防火墙中开启8888端口号,然后远程连接到轻量服务器执行宝塔面板账号密码查询命令,最后登录和…

Java内存模型介绍

Java作为一种面向对象的,跨平台语言,其对象、内存等一直是比较难的知识点。而且很多概念的名称看起来又那么相似,很多人会傻傻分不清楚。比如本文要讨论的JVM内存结构、Java内存模型和Java对象模型,这就是三个截然不同的概念&…

系列四、vue3 初始化项目(图形化界面方式)

一、启动UI界面 vue ui 二、创建项目 2.1、在此创建项目 2.2、创建新项目-详情配置 2.3、创建新项目-预设 2.4、创建新项目-功能 2.5、创建新项目-配置 2.6、运行项目 任务》serve》运行》启动app 2.7、首页 三、安装element-plus 3.1、步骤 ①、运行 vue ui 命令&#…

【C++初阶】想要编译器为你干活吗?来试试模板吧(模板初阶)

一.泛型编程 引入 我们之前都写过交换函数Swap,例如这样的: //交换两个整型 void Swap(int*x1, int *x2) {int tmp *x1;*x1 *x2;*x2 tmp;} 如果要交换其它的类型该怎么办呢? 那只能当个CV工程师了,然后再修修改改,…

java枚举enum

目录 一、概念二、声明枚举三、枚举类四、为枚举添加方法五、EnumMap 与 EnumSet 一、概念 枚举是一个被命名的整型常数的集合,用于声明一组带标识符的常数。枚举在曰常生活中很常见,例如一个人的性别只能是“男”或者“女”,一周的星期只能…

CAN总线通讯协议学习

s目录 CAN(controller Area Network) 控制器局域网 CAN通讯 CAN总线的数据帧 解析 CAN(controller Area Network) 控制器局域网 CAN总线应用最多的是汽车领域,这里的控制器在汽车领域的专业术语是ECU.(electronic control unit)电子控制单元。可以看成…

【计算机网络之HTTP篇】HTTP协议详解

目录 一、HTTP协议概念 二、HTTP 协议格式 三、HTTP请求详解 认识URL 认识HTTP方法 GET POST Host Content-Length Content-Type User-Agent (简称 UA) Referer Cookie 四、HTTP 响应详解 状态码 200 OK 404 Not Found 403 Forbidden 500 Internal Server E…

IMX6ULL裸机篇之DDR3初始化

一. DDR3L初始化简介 I.MX6U-ALPHA 开发板上带有一个 256MB/512MB 的 DDR3 内存芯片,16 位宽,型号为 NT5CC128M16JR/MT5CC256M16EP,nanya 公司出品的,分为对应 256MB 和 512MB 容量。 我自己用的开发板上 DDR3L内存芯片型号为…

【论文阅读】REPLUG: Retrieval-Augmented Black-Box Language Models

文章目录 前言REPLUGREPLUG LSR: Training the Dense RetrieverComputing Retrieval LikelihoodComputing LM likelihood 前言 原文地址:REPLUG: Retrieval-Augmented Black-Box Language Models 本文提出REPLUG,一个将语言模型视为黑盒检索增强的语言模…

45道SQL题目陆续更新

文章目录 学习视频配置环境第一天内连接 外连接第二天 学习视频 学习视频 配置环境 四张表 配置四张表的sql语句 #创建发据库 create database frogdata charsetutf8;use frogdata;# 学生表 Student create table Student( SId varchar(10), Sname varchar(1…

网易云音乐开发--SongDetail搭建

SongDetail静态页面搭建 我们再新建一个页面songDetail 先写结构 再写结构 然后在写样式,把这个图片放进去 这样就放进去了,这里有一个新的让元素居中的方式就是,子绝父相,然后 position: absolute;top: 0;left: 0;right: 0;bot…

MultipartFile来上传单个及多个文件代码示例

目录 一、MultipartFile上传单个文件代码示例1.1、MultipartFile上传单个文件,不包含其它参数1.2、MultipartFile上传单个文件,包含其它参数1.3、MultipartFile上传单个文件,包含其它请求实体 二、MultipartFile上传多个文件代码示例2.1、MultipartFile上传多个文件,不包含其它…

java(springboot+ssm)/python/php/nodejs/基于vue的景区门票预约管理系统

后端:java(springbootssm)/python/php/nodejs/ 开发运行:微信开发者/hbuilderx 后端:idea/eclipse/vscode/pycharm 模块划分:公告类型、公告信息、用户信息、用户咨询、地区信息、景区信息、景区开放、景区预约、统计信息 本技术是Java平台的…

国考省考行测:年均增长率,等速率增长率问题

国考省考行测:年均增长率,平均增长率 2022找工作是学历、能力和运气的超强结合体! 公务员特招重点就是专业技能,附带行测和申论,而常规国考省考最重要的还是申论和行测,所以大家认真准备吧,我讲一起屡屡申…

异常和中断

异常和中断机制 ​ 现代计算机中都配有完善的异常和中断处理系统,CPU的数据通路中有相应的异常检测和响应逻辑,外设接口中有相应的中断请求和控制逻辑,操作系统中有相应的中断服务程序。 异常和中断的基本概念 异常(内中断&#…