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

How to map POST parameters to model object using spring MVC method

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

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 格式。

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

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