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

时间:2013-08-24 01:27:05

标签: java spring spring-mvc

在我的spring mvc上下文中,我有以下映射(还有更多,但这会给出一个大致的想法)。 <mvc:view-controller path="/echo" view-name="echo"/>

<context:component-scan base-package="com.myapp.controllers"/>

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

但是如果匹配路径/回声,我不希望它们被转储到家中。我尝试在视图解析时设置<property name="order" value="0" />但是没有上下文的顺序,仍然优先考虑。

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

1 个答案:

答案 0 :(得分:1)

让控制器前面的视图解析器听起来像一个可怕的想法(如果能够完成),特别是因为UrlBasedViewResolver(或其他)和子类如果找不到匹配而不是通过它们会抛出异常连锁,链条。如果您只希望控制器在路径变量为整数时介入,则应使用RequestMapping的模式匹配选项,/e{number:\d+}之类的东西应引导您朝着正确的方向进行Google搜索。