【发布时间】:2012-06-06 19:56:55
【问题描述】:
我在 Spring MVC 3 应用程序中有两个请求映射,一个采用 json 和 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。
【问题讨论】:
-
是的,我也相信,会看看是否有其他人可以阐明一些问题,然后将其视为 Spring 的一个错误。
-
我遇到了完全相同的问题。你找到答案了吗?
-
我找不到这个问题的答案,并认为它一定是一个错误。
-
我在 Spring 论坛上提出了这个问题:forum.springsource.org/…。
标签: spring spring-mvc