java - Spring MVC :view-controller and component-scan setting priority

标签 java spring spring-mvc

在我的 spring mvc 上下文中,我有以下映射(还有更多映射,但这将给出一个总体思路)。 <mvc:view-controller path="/echo" view-name="echo"/>

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

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

但是,如果它们与路径/回显匹配,我不希望它们被转储到主目录。我尝试设置 <property name="order" value="0" />然而,根据 View 解决方案,在没有上下文命令的情况下,该解决方案仍然具有优先权。

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

最佳答案

将 View 解析器放在 Controller 前面听起来是一个糟糕的主意(如果可以做到的话),特别是因为 UrlBasedViewResolver (或其他东西)和子类如果没有找到匹配而不是通过则抛出异常链式,链条。如果您只希望 Controller 在路径变量为整数时介入,则应使用 RequestMapping 的模式匹配选项,例如 /e{number:\d+} 应该引导您走向正确的方向Google 搜索的方向。

关于java - Spring MVC :view-controller and component-scan setting priority,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18414016/

相关文章:

javascript - 为什么我的 gridOptions (ng-grid) 中的 "data"参数始终为空?

arrays - Spring MVC + RequestParam 作为 Map + 获取 URL 数组参数不起作用

java - 当我将按钮放在 Activity 上时,Android 应用程序崩溃,空 Activity 正在工作

java - 2 java代码的幂帮助我输入不同的结果

java - Spring中如何保存URL中传递的参数以供不同 Controller 使用?

java - 如何在 spring mvc 中为 LocalDate 注册全局数据绑定(bind)?

java - FrameLayout onClick 事件不起作用

java - JLabel 不会更新,除非有什么东西导致方法挂起

java - 外部tomcat中spring的SSL配置

java - 通过 Spring Config 将 "HardCoded"Constructor Arg Class<T> 传递给 bean