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 に対して新しい動作が行われる理由がわかりません。可能な修正に関する提案や考えはありますか? URL の末尾のスラッシュを削除するには、Apache Rewrite 条件を実装する必要がありますか?
ご協力いただきありがとうございます!