1
asanelder 2021-05-31 17:32:02 +08:00
使用 Map 啊
|
3
andy2415 2021-05-31 17:40:38 +08:00
1. Map
2. Json 3. 自定义注解 |
4
jorneyr 2021-05-31 17:50:20 +08:00
单个参数不直接 @RequestParam 获取嘛?
|
5
uselessVisitor 2021-05-31 17:52:02 +08:00
啥意思?@RequestBody ?
|
6
qwerthhusn 2021-05-31 18:31:14 +08:00 6
抛开 Content-Type 谈 POST 参数都是对 HTTP 协议不了解、只会仿照着别人写个接口能调通就 OK 的程序员。
如果是 application/json,可以直接 @RequestBody XXX str,这样就能直接获取了,但是要求客户端在 Body 体里面直接传这个参数,没有对象包裹。 提醒你一下,一个数字,一个字符串(需要双引号包裹),一个 true/false/null 都是正确的 JSON 串,只不过反序列化之后得到的是基本类型。 如果是 application/x-www-urlencoded 或者 multipart/form-data 或者参数直接放在 URL 参数里面,直接 @RequestParam 就行了 |
7
liangdaofeng 2021-05-31 18:43:20 +08:00 1
兄弟,考虑过 pathvalue 吗?
|
8
linbiaye 2021-05-31 18:48:56 +08:00
|
9
ikas 2021-05-31 18:55:52 +08:00
这个,如果你是 json,非要支持单参数,实现一个绑定类不就可以了
|
10
DreamSpace 2021-05-31 20:33:02 +08:00
如果是收 `"aaa"` 这样的参数,直接 @RequestBody String param 就可以了
如果是收 `{"id": "aaa"}`这样的参数,又想达到对象复用的效果,建议自己实现一下 Map<String,Object> 接口,写死 key 的值并忽略 key 的输入,并额外提供一个 getValue()方法方便获取 vaulue 。 |
11
vvv7000 2021-05-31 20:35:59 +08:00
|
12
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 里面拿也是一样的。 想怎么拿都行。 |
13
xuanbg 2021-05-31 21:19:50 +08:00
直接 body 里面传个 string 或者 int 不行吗???
|
15
asanelder 2021-06-01 07:45:32 +08:00
|
16
cs419 2021-06-01 09:12:10 +08:00
第一眼
单参数? 直接取呗 再琢磨。。。这是用 requestBody 取参数吖 |
17
iminto 2021-06-01 09:21:34 +08:00
啥时候 servlet 基础知识成奇技淫巧了。。。
|
18
liian2019 2021-06-01 10:47:43 +08:00
优雅一点就自定义一个注解
|