如何使用spring MVC方法将POST参数映射到模型对象

时间:2018-01-19 14:25:31

标签: spring model-view-controller multipartform-data

我有一个包含文件和其他输入字段元素的表单。 提交如下:

var xhrArgs = {
          form: attachmentForm,
          handleAs: "json",
          load: dojo.hitch(this, this._uploadSuccess),
          error: dojo.hitch(this, this._uploadError)
        };

var deferred =  dojo.io.iframe.send(xhrArgs);

在后端我有一个Spring控制器监听这个POST请求,如下所示:

@RequestMapping(value="/uploadAttachment.spr", consumes = { "multipart/form-data" })
public String execute(HttpServletRequest request, HttpServletResponse response)

到目前为止一切正常。

我现在想要在POJO对象中获取所有请求参数(基本上是POST有效负载)。

我尝试添加一个@RequestBody参数,但它失败了,请求错误(400):

    @RequestMapping(value="/uploadAttachment.spr", consumes = { "multipart/form-data" })
public String execute(HttpServletRequest request, HttpServletResponse response, 
 @RequestBody AttachmentFormModel model)

我认为它失败了,因为有效载荷不是JSON格式。

所以我的问题是:将所有请求参数自动映射到模型对象的最佳方法是什么?

1 个答案:

答案 0 :(得分:0)

我设法使用@ModelAttribute而不是@RequestBody来解决这个问题