我正在使用Annotated Controller开发一个Spring MVC项目.我感兴趣的一件事是关于@RequestMapping要处理的指令的顺序.例如,我希望所有/green/basic/welcome映射到GreenController.welcome()
但green/{treeId}/{treeName}要映射到GreenController.viewTree(treeId, treeName).
我想我需要指定两个@RequestMapping与@RequestMapping中/green/basic/welcome首先被处理,因此它不会解释为一个呼叫GreenControllerviewTree("basic", "welcome").
你能指导我吗?
a的精确匹配RequestMapping优先于a的精确匹配PathVariable.所以你会有两个请求映射,就像你指出的那样.一个用于处理特定URL,变量版本将捕获其他所有内容.Spring在检查路径变量匹配之前检查直接路径匹配,因此顺序无关紧要,除非您有两个具有相同数量的路径变量的请求映射,这可能会吐出一个IllegalStateException
检查详细信息的来源org.springframework.web.servlet.handler.AbstractHandlerMethodMapping.它是在处理lookupHandlerMethod().
要确定两个RequestMapping不完全匹配的s 的最佳匹配,请使用compareTo()方法RequestMappingInfo.
| 归档时间: |
|
| 查看次数: |
4247 次 |
| 最近记录: |