@RequestBody 注解问题
如果参数少于三个,直接在controller层 方法头上加@RequestBody
一、@RequestMapping 基础用法
用于将任意HTTP 请求映射到控制器方法上。
@RequestMapping表示共享映射,如果没有指定请求方式可以用@RequestMapping代替,将接收GET、POST、HEAD、OPTIONS、PUT、PATCH、DELETE、TRACE、CONNECT所有的HTTP请求方式。@GetMapping、@PostMapping、@PutMapping、@DeleteMapping、@PatchMapping 都是HTTP方法特有的快捷方式@RequestMapping的变体,分别对应具体的HTTP请求方式的映射注解。
注意:如果参数不是对象类时,又恰巧axios是post或put 后端必须用 @RequestBody 加在参数前(@RequestBody String XX)
因为Post和Put,默认传递的是 JSON格式 请求体所以要用到@RequestBody;
/**
* 不管你是get 请求 还是 post 请求 只要你的参数名称叫做abc
* 这里的abc 必须和 postman里面的key 一样
* 值是什么无所谓 都可以接受到;
* 如果页面有40个参数 你写太多了 所以 对象最好接收 多个参数 超过3个以上
* 但是这个时候 还是一样 不管你是get 请求 还是post请求
* 只要key 的名称 等于 a对象类里面的属性名称 就接受的到
* 到目前位置 懂吗
* 然后 页面 除了 传一般的参数 还可以传特殊的参数 json格式的参数
* 这种json格式的参数 有两个要求
* 1.必须用对象
* 2.必须在对象前面加注解 如果不加 就报错
* 3.对象里面的属性名称 还是要等于json格式里面的 key的名称
* 你看 你满足了2点 但是 没有加注解 所以还是接受不到
*
*
*/
@RequestMapping("/demo")
public void show(@RequestBody A a) {
System.out.println(a);
}
axios的post、put 等请求方式默认传递的是 JSON格式 请求体,后端必须用 @RequestBody 注解的方式将 JSON request body 转换为 Java 对象类型,如:
@PutMapping("/update")
public void updateDept( @RequestBody Dept entity ) { ... }
@RequestMapping("/demo")
public void show(String name,String location) {
System.out.println(name+location);
}
Servlet根据前端Axios设置的"Get" 或者“Post”进行设置相应的“PostMapping”和“GetMapping”或者设置@RequestMapping;
但参数要是用对象类;
如下:
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix