Pranav C Balan Pranav C Balan - 9 months ago 80
Java Question

Using @RequestParam for multipartfile is a right way?

I'm developing a spring mvc application and I want to handle multipart request in my controller. In the request I'm passing

also, currently I'm using
to get the file paramaeter, the method look like,

@RequestMapping(method = RequestMethod.POST)
public def save(
@ModelAttribute @Valid Product product,
@RequestParam(value = "image", required = false) MultipartFile file) {

Above code works well in my service and the file is getting on the server side. Now somewhere I seen that in case of file need to use
annotation instead of
. Is there anything wrong to use
for file ? Or it may cause any kind of error in future?


It is nothing wrong using @RequestParam with Multipart file.

@RequestParam annotation can also be used to associate the part of a "multipart/form-data" request with a method argument supporting the same method argument types. The main difference is that when the method argument is not a String, @RequestParam relies on type conversion via a registered Converter or PropertyEditor while @RequestPart relies on HttpMessageConverters taking into consideration the 'Content-Type' header of the request part. @RequestParam is likely to be used with name-value form fields while @RequestPart is likely to be used with parts containing more complex content (e.g. JSON, XML).