Проблемы с отображением URL в Spring 3.0 - PullRequest
2 голосов
/ 21 марта 2011

Я тестирую обновление с Spring 2.0 до Spring 3.0.5 на Tomcat, и у меня возникла проблема, связанная с разным поведением сопоставления для URL с косой чертой и идентичным URL без косой черты.

Например, в моей реализации Spring 2.0 следующие URL-адреса будут отображаться на один и тот же класс контроллера в соответствии с приведенной ниже конфигурацией XML Spring MVC:

  • /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-адресах?

Спасибо за помощь!

1 Ответ

0 голосов
/ 21 марта 2011

Я бы сказал, что самое простое решение - создать BeanPostProcessor, который удаляет завершающие косые черты.

Или, лучше, BeanFactoryPostProcessor, чтобы вы могли редактировать определения бинов, а не фактические бины.

...