gstackoverflow
gstackoverflow

Reputation: 37034

HTTP Status 400 - Required ... parameter ... is not present

I have following controller:

       @ModelAttribute("multipartFileWrapper")
        public MultipartFileWrapper createEmployeeModel() {
           return new MultipartFileWrapper();
        }
        @RequestMapping(value = "/member/createCompany/uploadImage", method = RequestMethod.POST)
        @ResponseBody
            public ResponseEntity<String> handleFileUpload(@RequestParam("file") @Validated         MultipartFileWrapper file, BindingResult result, Principal principal) {
               if(result.hasErrors()){
                   System.out.println("ololololo");

               }
               return  null;
            }
      }

@Component
public class MultipartFileWrapper {
    @Extensions(".jpg")
    MultipartFile multipartFile;

    public MultipartFile getMultipartFile() {
        return multipartFile;
    }

    public void setMultipartFile(MultipartFile multipartFile) {
        this.multipartFile = multipartFile;
    }
}

and following jsp:

    <form:form method="POST"  action="uploadImage" enctype="multipart/form-data" id="imageUploadForm" commandName="multipartFileWrapper" >
                <div class="load-line">
                    <td><form:input path="multipartFile" name="file" type = "file" class = "file" accept=".jpg,.png,.gif,.bmp,.wbmp" /></td>
                    <td><form:errors path="multipartFile" cssClass="error" /></td>
                    <input type="submit" value="Submit" />
               </div>
  </form:form>

When I submit form I get following error:

HTTP Status 400 - Required MultipartFileWrapper parameter 'file' is not present

What do I make wrong?

Upvotes: 1

Views: 11084

Answers (1)

gstackoverflow
gstackoverflow

Reputation: 37034

I removed @RequestParam annotation and it works now:

replace

public ResponseEntity<String> handleFileUpload(@RequestParam("file") @Validated MultipartFileWrapper file, BindingResult result, Principal principal)

with

public ResponseEntity<String> handleFileUpload( @Validated MultipartFileWrapper file, BindingResult result, Principal principal)

Upvotes: 3

Related Questions