Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Spring mvc:视图控制器和组件扫描设置优先级_Java_Spring_Spring Mvc - Fatal编程技术网

Java Spring mvc:视图控制器和组件扫描设置优先级

Java Spring mvc:视图控制器和组件扫描设置优先级,java,spring,spring-mvc,Java,Spring,Spring Mvc,在我的SpringMVC上下文中,我有以下映射(还有更多映射,但这将给出一个总体概念)。 我遇到的问题是,我有一个带有注释的控制器,带有@RequestMapping(value=“/e{number}”。在带有请求映射的同一个控制器中,如果@PathVariable不是整数,我会重定向将用户转储到“home” 但是,如果它们与路径/echo匹配,我不希望它们被转储到主目录。我尝试在视图解析上设置,但是,在上下文上没有顺序,这仍然具有优先权 如何设置组件扫描的优先级,或者强制在注释控制器之前

在我的SpringMVC上下文中,我有以下映射(还有更多映射,但这将给出一个总体概念)。

我遇到的问题是,我有一个带有注释的控制器,带有
@RequestMapping(value=“/e{number}”
。在带有请求映射的同一个控制器中,如果
@PathVariable
不是整数,我会重定向将用户转储到“home”

但是,如果它们与路径/echo匹配,我不希望它们被转储到主目录。我尝试在视图解析上设置
,但是,在上下文上没有顺序,这仍然具有优先权


如何设置组件扫描的优先级,或者强制在注释控制器之前首先匹配视图分解器。

将视图分解器放在控制器前面听起来是个糟糕的主意(如果可以做到的话),尤其是因为UrlBasedViewResolver(或其他什么东西)如果子类没有找到匹配项而不是通过链传递,则会抛出异常。如果您只想让控制器在path变量为整数时介入,则应该对RequestMapping使用模式匹配选项,类似于
/e{number:\d+}
应该为谷歌搜索指引正确的方向。

将视图解析器放在控制器前面听起来是个糟糕的主意(如果能够做到的话),尤其是因为UrlBasedViewResolver(或其他东西)如果子类没有找到匹配项而不是通过链传递,则会抛出异常。如果您只想让控制器在path变量为整数时介入,则应该对RequestMapping使用模式匹配选项,类似于
/e{number:\d+}
应该能引导你在谷歌搜索中找到正确的方向。我尝试了`@RequestMapping(value=“/e{number:\\d+}”和@RequestMapping(value=“/e{^\\\+?\\d+\$}”但都不起作用。我将继续尝试,看看能找到什么。我尝试了
@RequestMapping(value=“/{^\\e+?\\d+\$}”
我收到一个400错误,说客户发送的请求在语法上不正确。我问了一个不同的问题,关于正则表达式的映射。@Mattwipple,请将您的评论作为答案提交,以便我可以将其标记为正确。当您有{number:\d+}时,我误解了您的评论因为我正在清理我的代码,所以我把我的实际变量名换成了数字,但没有意识到这就是你所说的。我在上问了另一个问题,这为我澄清了问题。再次感谢你!