前端的代码是const result = myAxios.post('/user/update', { currentId, values, })浏览器中请求的负载参数是{currentId: "7", values: {username: "yuanshen"}} java如何接收该请求携带的参数?
时间: 2024-02-13 20:04:02 浏览: 58
在 Java 后端中,可以通过类似于以下代码来接收该请求携带的参数:
```java
@PostMapping("/user/update")
public ResponseEntity<?> updateUser(@RequestBody Map<String, Object> payload) {
String currentId = (String) payload.get("currentId");
Map<String, Object> values = (Map<String, Object>) payload.get("values");
String username = (String) values.get("username");
// ...
}
```
这里的 `@PostMapping("/user/update")` 是使用 Spring Framework 提供的注解来标识该接口可以接收 POST 请求。`@RequestBody` 注解表示该方法可以接收 HTTP 请求的请求体,并将其转换为 Java 对象。`Map<String, Object>` 表示将请求体转换为 Map 类型的对象,其中键是字符串类型,值可以是任意类型的对象。
在这个例子中,我们首先从 `payload` 中获取 `currentId` 和 `values`,然后从 `values` 中获取 `username`。值得注意的是,`payload` 中的键名需要和前端发送的参数名保持一致,否则获取不到。
当然,如果参数值的类型不是字符串类型,Java 后端可以根据实际情况进行类型转换。
阅读全文