![]() | 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 zm8m93Q1e5otOC69 2021-05-31 17:52:02 +08:00 啥意思?@RequestBody ? |
![]() | 6 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 就行了 |
7 liangdaofeng 2021-05-31 18:43:20 +08:00 ![]() 兄弟,考虑过 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 优雅一点就自定义一个注解 |