【发布时间】:2016-02-17 05:02:02
【问题描述】:
我正在构建一个用于上传文件的 Spring 休息服务。有一个表单,由各种字段和一个用于上传文件的字段组成。在提交该表单时,我将发送一个多部分表单请求,即 Content-Type 为 multipart/form-data。
所以我在下面尝试了
@RequestMapping(value = "/companies", method = RequestMethod.POST)
public void createCompany(@RequestBody CompanyDTO companyDTO, @RequestParam(value = "image", required = false) MultipartFile image){
.................
但是,上面没有工作。因此,暂时,我将 JSON 数据作为字符串发送,并在休息服务中从该字符串形成公司对象,如
@RequestMapping(value = "/companies", method = RequestMethod.POST)
public void createCompany(@RequestParam("companyJson") String companyJson, @RequestParam(value = "image",required = false) MultipartFile image) throws JsonParseException, JsonMappingException, IOException{
CompanyDTO companyDTO = new ObjectMapper().readValue(companyJson, CompanyDTO.class);
.............................
如果不将 JSON 作为字符串传递,我不能使用 @RequestBody 发送 JSON 数据吗?
【问题讨论】:
-
问题是
@RequestBody,见stackoverflow.com/questions/29370143/… -
没有@RequestBody,对象字段不会被映射,即DTO的字段被设置为null
标签: java json spring rest multipartform-data