【问题标题】:Spring 3.0 URL Mapping IssuesSpring 3.0 URL 映射问题
【发布时间】:2011-03-21 20:16:06
【问题描述】:

我正在 Tomcat 上测试从 Spring 2.0 到 Spring 3.0.5 的升级,并且遇到一个问题,即带有尾部斜杠的 URL 与没有尾部斜杠的相同 URL 的映射行为不同。

例如,在我的 Spring 2.0 实现中,根据下面的 Spring MVC XML 配置,以下 URL 都将映射到同一个控制器类:

  • /search/categories
  • /search/categories/

<bean id="searchMapping" class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
    <property name="order" value="1"/>
    <property name="mappings">
        <props>
            <prop key="/search/categories">categoriesController</prop>
        </props>
    </property>
</bean>

但是,在 Spring 3.0.5 中,/search/categories/(注意尾部斜杠)未映射到控制器。只有/search/categories(没有尾部斜杠)被映射。

我知道 XML 配置在未来已被弃用,不幸的是,我还无法摆脱它。但是我不确定为什么在 Spring 3.0.5 中,带有斜杠的 URL 会有新的行为。关于可能的修复有什么建议或想法吗?我是否需要实现 Apache Rewrite 条件以删除 URL 上的尾部斜杠?

感谢您的帮助!

【问题讨论】:

    标签: tomcat spring-mvc url-mapping


    【解决方案1】:

    我想说最简单的解决方案是create a BeanPostProcessor,它会修剪掉尾部的斜杠。

    或者,更好的是BeanFactoryPostProcessor,这样您就可以编辑 bean 定义,而不是实际的 bean。

    【讨论】:

      猜你喜欢
      • 2011-01-18
      • 2012-09-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-10-21
      • 2012-10-22
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多