gpt4 book ai didi

spring-mvc - Spring MVC中的有序RequestMapping

转载 作者:行者123 更新时间:2023-12-03 13:31:38 24 4
gpt4 key购买 nike

我正在使用带注释的 Controller 进行Spring MVC项目。
我感兴趣的一件事是处理@RequestMapping指令的顺序。
例如,我希望所有/green/basic/welcome都映射到GreenController.welcome()但是green/{treeId}/{treeName}要映射到GreenController.viewTree(treeId, treeName)

我想我需要先指定两个@RequestMapping@RequestMapping/green/basic/welcome一起处理,这样它才不会被解释为对GreenControllerviewTree("basic", "welcome")的调用。

你们可以在这方面指导我吗?

最佳答案

RequestMapping的完全匹配将优先于PathVariable的匹配。因此,您将像您指出的那样有两个请求映射。一个用于处理特定的URL,变量版本将捕获其他所有内容。 Spring在检查路径变量匹配之前先检查直接路径匹配,因此顺序无关紧要,除非您有两个具有相同数量路径变量的请求映射,这可能会吐出IllegalStateException
检查source of org.springframework.web.servlet.handler.AbstractHandlerMethodMapping 的详细信息。它在lookupHandlerMethod()中处理。

要确定两个不完全匹配的RequestMapping的最佳匹配,请使用 RequestMappingInfo 的compareTo()方法。

关于spring-mvc - Spring MVC中的有序RequestMapping,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2326912/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com