Spring MVC表单参数和查询参数

时间:2015-08-07 05:32:32

标签: spring spring-mvc

在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

有关如何使其发挥作用的任何想法?

1 个答案:

答案 0 :(得分:0)

假设Order类具有order_idorder_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}实例。此外,parm1parm2将分别包含foobarBindingResult包含前面的命令或表单对象(前一个方法参数)的验证结果。 See this discussion about Query Parameters in POST requests. Forms Spec也是一个很好的参考。