缩小Spring MVC基于注释的控制器和@RequestMapping的问题

Dan*_*iuc 7 java spring annotations spring-mvc

考虑一下这个Spring MVC控制器:

@Controller
@RequestMapping("/test*")
public class TestController {

  @RequestMapping(method = RequestMethod.GET)
  public void doStuff(Model model){
    ...
  }

  @RequestMapping(params = "myParam")
  public void doStuff(@RequestParam("myParam") int myParam, Model model){
    ...
  }

}
Run Code Online (Sandbox Code Playgroud)

当我把它放到我的浏览器中时:

mySite.com/test.html?myParam=1
Run Code Online (Sandbox Code Playgroud)

我期待一个AmbiguousHandlerMappingException或其他东西,因为两个方法似乎都匹配URL.

但实际上第一种方法被调用了.有人知道为什么吗?

ska*_*man 5

这闻起来像一个臭虫.如果将method = GET添加到第二个处理程序,它将按预期工作,这就是解决方法.

我已经就此提交了一份错误报告,希望它能得到解决.

http://jira.springframework.org/browse/SPR-5772

  • SPR-5772现已解决,将在RC1中. (2认同)