在Spring 4 MVC中,我试图弄清楚如何接受发布到我的休息端点的表单参数和查询参数,并触发验证,但我正在努力弄清楚如何使其工作。< / p>
理想情况下,我的控制器看起来像这样:
@RequestMapping(value="/someurl", method=RequestMethod.POST, produces = MediaType.APPLICATION_JSON_VALUE)
public someMethod(@Valid @ModelAttribute Order order, @RequestParam String parm1, @RequestParam String parm2) {
}
我需要将表单参数发布到控制器URL以及一些查询参数和Content-Type = application / x-www-form-urlencoded
有关如何使其发挥作用的任何想法?
答案 0 :(得分:0)
假设Order
类具有order_id
和order_x
属性,并具有以下端点:
@RequestMapping(value="/someurl", method=RequestMethod.POST, produces = MediaType.APPLICATION_JSON_VALUE)
public someMethod(@Valid @ModelAttribute Order order, BindingResult validation, @RequestParam String parm1, @RequestParam String parm2) {
}
如果客户端使用application/x-www-form-urlencoded
内容类型发送带有请求正文的POST请求:
order_id=1&order_x=something&parm1=foo&parm2=bar
然后将实例化Order
{order_id=1, order_x=something}
实例。此外,parm1
和parm2
将分别包含foo
和bar
。 BindingResult
包含前面的命令或表单对象(前一个方法参数)的验证结果。
See this discussion about Query Parameters in POST requests. Forms Spec也是一个很好的参考。