我正在 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 重写条件以删除 URL 上的尾部斜杠?
谢谢你的帮助!