日常提交

This commit is contained in:
2022-11-30 23:51:11 +08:00
parent bd3884c617
commit 632324d94b

View File

@@ -356,8 +356,43 @@ public String handle(@SessionAttribute User user) {
}
```
#### Multipart
在MultipartResolver被启用之后
在MultipartResolver被启用之后Post请求体中为multipart/form-data格式的数据将被转化并可以作为handler method的参数访问。如下显示了文件上传的用法
```java
@Controller
public class FileUploadController {
@PostMapping("/form")
public String handleFormUpload(@RequestParam("name") String name,
@RequestParam("file") MultipartFile file) {
if (!file.isEmpty()) {
byte[] bytes = file.getBytes();
// store the bytes somewhere
return "redirect:uploadSuccess";
}
return "redirect:uploadFailure";
}
}
```
> 在上述代码中可以将MultipartFile改为List\<MultipartFile\>来解析多个文件名
> **当@RequestParam没有指定name属性并且参数类型为Map<String,MultipartFile>或MultiValueMap<String,MultipartFile>类型时会根据name自动将所有匹配的MultipartFile注入到map中**
#### @RequestBody
可以通过@RequestBody注解读取请求体内容并且通过HttpMessageConverter将内容反序列化为Object。具体使用方法如下
```java
@PostMapping("/accounts")
public void handle(@RequestBody Account account) {
// ...
}
```
#### HttpEntity
将参数类型指定为HttpEntity与使用@RequestBody注解类似其作为一个容器包含了请求体转化后的对象account实例和请求头HttpHeaders。其使用如下
```java
@PostMapping("/accounts")
public void handle(HttpEntity<Account> entity) {
// ...
}
```