Si mapeo mi aplicación de primavera para procesar todas las solicitudes entrantes ('/ *'), las solicitudes de contenido estático devuelven 404's. Por ejemplo, una solicitud para "myhost.com/css/global.css" devolvería un 404, aunque el recurso existe cuando Spring intercepta la solicitud.¿Se puede configurar SpringMVC para procesar todas las solicitudes, pero excluir directorios de contenido estático?
La alternativa es asignar SpringMVC a un subdirectorio (por ejemplo '/ home/'), pero en este caso, debe pasar este directorio en todos los enlaces dentro de la aplicación. ¿Hay alguna manera de asignar SpringMVC a '/' y excluir un conjunto de directorios del procesamiento?
Mi configuración web.xml actual es:
<servlet>
<servlet-name>springApp</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<load-on-startup>2</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>springApp</servlet-name>
<url-pattern>/home/*</url-pattern>
</servlet-mapping>
Idealmente me gustaría tener el mapeo ser algo como lo siguiente:
<servlet-mapping>
<servlet-name>springApp</servlet-name>
<url-pattern>/*</url-pattern>
<exclude>/css/*,/js/*</exclude>
</servlet-mapping>
¿Es este tipo de cosas posible?
Actualmente estoy usando DefaultAnnotationHandlerMapping para hacer un mapeo basado en anotaciones de los controladores. En función de su sugerencia, la ampliaré y agregaré soporte para exclusiones basadas en rutas. Gracias por señalarme en la dirección correcta. –
¡Respuesta impresionante! –
En caso de que alguien lo omita, tenga en cuenta que existe una solución mucho mejor para Spring 3.x. ¡Mira la respuesta a continuación! –