如何使用 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 解决了这个问题
我有一个包含文件和一些其他输入字段元素的表单。 提交完成如下:
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 解决了这个问题