我在 Spring MVC 3 应用程序中有两个请求映射,一个接受json
and xml
,另一个接受application/x-www-form-urlencoded
数据。例子:
@RequestMapping(value={"/v1/foos"}, method = RequestMethod.POST, consumes={"application/json", "application/xml"})
public FooDTO createFoo(@RequestBody FooDTO requestDTO) throws Exception {
...
}
@RequestMapping(value={"/v1/foos"}, method = RequestMethod.POST, consumes="application/x-www-form-urlencoded")
public FooDTO createFooWithForm(@ModelAttribute FooDTO requestDTO) throws Exception {
...
}
我希望不同的consumes
参数使每个请求都是唯一的,尽管我得到了一个java.lang.IllegalStateException: Ambiguous handler methods mapped...
.
应该consumes
并使produces
请求独一无二?有任何想法吗?
编辑 1:要为此添加权重,如果您content-type
在标题中设置而不是使用consumes
,这实际上可以工作并使它们独一无二:headers="content-type=application/x-www-form-urlencoded
。也许有一个错误consumes
?
编辑 2:我们使用的是 Spring 3.1.1.RELEASE。