2013-10-16 12 views
0

是否可以将多部分表单的内容捆绑到相应控制器方法中的单个对象中?弹簧:单个对象中的多部分Formdata

即我怎么变换方法

@RequestMapping(value = "/mult", method = RequestMethod.POST, consumes = MediaType.MULTIPART_FORM_DATA_VALUE) 
public ResponseEntity<SomeBean> upload(@RequestBody MultipartFile multipartFile, @RequestParam String param) 

到的方法具有以下签名:

@RequestMapping(value = "/mult", method = RequestMethod.POST, consumes = MediaType.MULTIPART_FORM_DATA_VALUE) 
public ResponseEntity<SomeBean> upload(@RequestBody MultipartWrapper wrapper) 

其中MultipartWrapper包含multipartFile和附加PARAM:

public class MultipartWrapper { 
    private String param; 
    private MultipartFile multipartFile; 

    // Getters & Setters 
} 

回答

1

使用@ModelAttribute作为在其他控制器中:

@RequestMapping(value = "/mult", method = RequestMethod.POST, consumes = MediaType.MULTIPART_FORM_DATA_VALUE) 
public ResponseEntity<SomeBean> upload(@ModelAttribute("cmd") MultipartWrapper wrapper) { 
    ... 
} 

@ModelAttribute("cmd") 
public MultipartWrapper getWrapper() { 
    return new MultipartWrapper(); 
} 

public class MultipartWrapper { 
    private String param; 
    private MultipartFile multipartFile; 

    // Getters & Setters 
}