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

news/2025/1/3 6:45:44/

springboot项目

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

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

以下都是controller层

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

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

加@NotEmpty后接收不到参数

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

@RequestBody @NotEmpty 可以接收到参数

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

    @PostMapping("find3")@ResponseBodypublic 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")@ResponseBodypublic JsonResult find4(@NotEmpty(message = "userId不能为空") @RequestParam(value = "userId", required = false) String userId) {return JsonResult.ok(userId);}

ssm项目

ssm项目就没这个问题。

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

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


http://www.ppmy.cn/news/74449.html

相关文章

力扣sql中等篇练习(二十六)

力扣sql中等篇练习(二十六) 1 世界排名的变化 1.1 题目内容 1.1.1 基本题目信息1 1.1.2 基本题目信息2 1.1.3 示例输入输出 a 示例输入 b 示例输出 1.2 示例sql语句 # 分别求出变化前后的排名 然后再进行内连接即可 # row_number()里面也可以用多个字段加减的表达式去进行…

动态ip与静态ip的区别是什么?

动态ip和静态ip的区别在于: 动态ip可以自动获取IP地址,静态ip需要手动设置IP地址。 动态ip一般用于局域网内部或小型企业网中,静态ip一般用于大型企业网或骨干网等对安全性要求高的场合。 在网速上,动态ip和静态ip没有区别。 动…

文心一言和ChatGPT最全对比

文心一言和ChatGPT都是基于深度学习技术的自然语言处理模型,有各自的优势和使用场景,无法简单地比较 ChatGPT 和文心一言哪一个功能更强大,它们各自具有优势和局限性,需要根据具体需求进行选择,以下一些具体对比&#…

生成式AI热潮:一场“添饭碗”的科技革命

今年以来,人工智能(AI)热潮席卷全球,被认为将掀起新的科技革命。 5月18日的2023天津世界智能大会,以“智行天下 能动未来”为主题,重点关注人工智能发展的新趋势、新技术、新业态。大会开幕式结束之后&…

【观察】共建“伙伴+华为”背后,是华为平台到体系的战略“升维”

2017年,在当年的“伙伴大会”上,华为首次提出以“平台生态”双轮驱动的战略,以更加开放的心态积极拥抱产业变化,通过和产业链上各个层级的合作伙伴一起合作,共同实现新的市场突破。 彼时中国企业和行业的数字化转型刚刚…

本地搭建wamp服务器并内网穿透实现无公网IP远程访问

文章目录 前言1.Wamp服务器搭建1.1 Wamp下载和安装1.2 Wamp网页测试 2. Cpolar内网穿透的安装和注册2.1 本地网页发布2.2 Cpolar云端设置2.3 Cpolar本地设置 3. 公网访问测试4. 结语 转载自cpolar极点云的文章:无公网IP?教你在外远程访问本地Wamp服务器「…

【dfn序+DP】树

把一棵树转化成一个序列有三种方法: dfs序 dfn序(时间戳) 欧拉序 关于这三者的区别,参考这篇博客,讲的超级好! 重谈DFS序、时间戳和欧拉序 - Seaway-Fu - 博客园 (cnblogs.com) 题意: 思路…

企业数字转型加速器!居然是他!该不会还有人没用上吧?

随着数字化时代的到来和技术的发展,企业数字化转型已经成为全球企业发展的重要趋势。然而,数字化转型的过程却并非一帆风顺,常常因为 IT 复杂度高、开发周期长等问题而遇到许多挑战,这时候低代码开发平台就能够发挥重要作用。 低代…