Как я могу отобразить пружинный контроллер на URL с .jsp расширением?

Мы находимся в процессе миграции jsp-единственного приложения к Spring-MVC. По различным причинам мы не можем изменить расширение текущих страниц. (вызовам к login.jsp нужно к обработанному пружинным контроллером, который будет использовать jsp файл в качестве представления).

Мы делаем это многократно, таким образом, некоторые страницы должны остаться jsp файлы (звонит в welcome.jsp, не будет обработан контроллером).

Чтобы сделать это, я отобразил и DispatcherDervlet и HandlerMapping к *.jsp, и настроил JstlView стандартным способом.

К сожалению, если я просматриваю к//login.jsp, я получаю ошибку при высказывании

<No mapping found for HTTP request with URI [/<context>/WEB-INF/jsp/login.jsp] in DispatcherServlet with name 'spring'>

Все это работает, если я изменяю .jsp на какое-либо другое расширение в DispatcherServlet и HandlerMapping.

web.xml:

<servlet>
    <servlet-name>spring</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
        <load-on-startup>1</load-on-startup>
</servlet>

<servlet-mapping>
    <servlet-name>spring</servlet-name>
    <url-pattern>*.jsp</url-pattern>
</servlet-mapping>

spring-servlet.xml:

<!-- View resolver -->
<bean id="viewResolver" class="org.springframework.web.servlet.view.UrlBasedViewResolver">
    <property name="viewClass" value="org.springframework.web.servlet.view.JstlView"/>
    <property name="prefix" value="/WEB-INF/jsp/"/>
    <property name="suffix" value=".jsp"/>
</bean>

<!-- URL Mapping -->
<bean id="publicUrlMapping" class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
    <property name="urlMap">
        <map>
            <entry key="/login.jsp" value-ref="loginController"/>
        </map>
    </property>
</bean>

Большое спасибо.

ОБНОВЛЕНИЕ: Я просто проверил, что, если я переименовываю свои .jsp файлы к чему-то еще (.jst) и обновляю viewResolver соответственно, чем все это, работает. По-видимому, если представление разрешено в файл с расширением .jsp, пружина пытается передать представление другому контроллеру.

6
задан Matteo Caprari 4 May 2010 в 11:15
поделиться

1 ответ

если он действительно не работает с расширениями .jsp (хотя я лично не вижу причин для этого), вы можете попробовать использовать http://tuckey.org/urlrewrite/, чтобы сначала сделать перезапись урлов.

2
ответ дан 17 December 2019 в 04:43
поделиться
Другие вопросы по тегам:

Похожие вопросы: