springboot post 单参数请求各位是怎么处理的,也是定义一个单参数类吗?

2021-05-31 17:23:00 +08:00
 bingyiyu
或者有没有什么奇淫技巧直接在参数里现成定义一个类不用另写文件
3183 次点击
所在节点    Java
19 条回复
asanelder
2021-05-31 17:32:02 +08:00
使用 Map 啊
memedahui
2021-05-31 17:35:29 +08:00
@asanelder 好家伙,我直接好家伙,是个高手
andy2415
2021-05-31 17:40:38 +08:00
1. Map
2. Json
3. 自定义注解
jorneyr
2021-05-31 17:50:20 +08:00
单个参数不直接 @RequestParam 获取嘛?
uselessVisitor
2021-05-31 17:52:02 +08:00
啥意思?@RequestBody ?
qwerthhusn
2021-05-31 18:31:14 +08:00
抛开 Content-Type 谈 POST 参数都是对 HTTP 协议不了解、只会仿照着别人写个接口能调通就 OK 的程序员。

如果是 application/json,可以直接 @RequestBody XXX str,这样就能直接获取了,但是要求客户端在 Body 体里面直接传这个参数,没有对象包裹。

提醒你一下,一个数字,一个字符串(需要双引号包裹),一个 true/false/null 都是正确的 JSON 串,只不过反序列化之后得到的是基本类型。

如果是 application/x-www-urlencoded 或者 multipart/form-data 或者参数直接放在 URL 参数里面,直接 @RequestParam 就行了
liangdaofeng
2021-05-31 18:43:20 +08:00
兄弟,考虑过 pathvalue 吗?
linbiaye
2021-05-31 18:48:56 +08:00
ikas
2021-05-31 18:55:52 +08:00
这个,如果你是 json,非要支持单参数,实现一个绑定类不就可以了
DreamSpace
2021-05-31 20:33:02 +08:00
如果是收 `"aaa"` 这样的参数,直接 @RequestBody String param 就可以了
如果是收 `{"id": "aaa"}`这样的参数,又想达到对象复用的效果,建议自己实现一下 Map<String,Object> 接口,写死 key 的值并忽略 key 的输入,并额外提供一个 getValue()方法方便获取 vaulue 。
vvv7000
2021-05-31 20:35:59 +08:00
springboot 初学者,据我了解 json 的话用 @RequestBody 反序列化可以,需要客户端在请求体中以对应的格式传参

放在 URL 里的话,可以通过 @RequestParam 获取
young1lin
2021-05-31 20:50:30 +08:00
不用参数,我教你一招。
```java
ServletRequestAttributes requestAttributes =(ServletRequestAttributes) RequestContextHolder.getRequestAttributes();
String requestParam = requestAttributes.getRequest().getParameter("这里是你的请求参数名称,例如 name 什么的");
```
什么都能拿到,懂我意思吧,如果你学过 Servlet 规范,看过一点点 DispatchServlet 的父类 FrameworkServlet 源码,再了解一点点 ThreadLocal 的知识没,你就懂我意思了。这个算奇淫巧技。

当然你参数里传 HttpServletRequest request 也是 ok 的,从这个 request 里面拿也是一样的。

想怎么拿都行。
xuanbg
2021-05-31 21:19:50 +08:00
直接 body 里面传个 string 或者 int 不行吗???
mringg
2021-05-31 21:42:38 +08:00
@asanelder 别只用 Map,这里还可以用 List
asanelder
2021-06-01 07:45:32 +08:00
@mringg #14
@qwerthhusn #6 学到了
cs419
2021-06-01 09:12:10 +08:00
第一眼
单参数? 直接取呗
再琢磨。。。这是用 requestBody 取参数吖
iminto
2021-06-01 09:21:34 +08:00
啥时候 servlet 基础知识成奇技淫巧了。。。
liian2019
2021-06-01 10:47:43 +08:00
优雅一点就自定义一个注解
hcen1997
2021-08-06 13:52:40 +08:00
可以在接口文件中自定义 static class 的一个类, 给上 @data 注解,

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/780402

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX