Estamos en el proceso de migrar una aplicación jsp-only a Spring-MVC. Por diversas razones, no podemos cambiar la extensión de las páginas actuales. (las llamadas a login.jsp necesitan ser manejadas por un controlador de primavera que usará un archivo jsp como vista).¿Cómo puedo asignar un controlador de muelles a una url con la extensión .jsp?
Estamos haciendo esto de forma iterativa, por lo que algunas páginas deben permanecer en los archivos jsp (las llamadas a welcome.jsp no serán manejadas por un controlador).
Para hacer eso asigné tanto el DispatcherDervlet como el HandlerMapping a * .jsp, y configuré el JstlView de la manera estándar.
Por desgracia, si hojeo a //login.jsp me sale un error que dice
<No mapping found for HTTP request with URI [/<context>/WEB-INF/jsp/login.jsp] in DispatcherServlet with name 'spring'>
funciona todo si cambio .jsp a cualquier otra extensión en DispatcherServlet y 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>
primavera-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>
muchas gracias.
ACTUALIZACIÓN: Acabo de verificar que si cambio el nombre de mis archivos .jsp a otra cosa (.jst) y actualizo el viewResolver en consecuencia, entonces todo funciona. Aparentemente, si la vista se resuelve en un archivo con extensión .jsp, Spring intenta reenviar la vista a otro controlador.