2012-03-01 16 views
9

mañana,Spring MVC - Mapa controlador a raíz de contexto (/) durante el uso de los recursos: mvc

teniendo problemas del mapeo de un controlador a/(es decir localhost: 8080/SomeApp/deberían asignar a @Controller ("/")), mientras que también utilizar MVC: recursos

mapeo web.xml:

<servlet-mapping> 
    <servlet-name>springServlet</servlet-name> 
    <url-pattern>/</url-pattern> 
    </servlet-mapping> 

mvc: recursos

<mvc:resources mapping="/resources/**" location="/resources/" /> 

El servidor carga la página correctamente, pero cuando mapa para un IE activo

<link type="text/css" rel="stylesheet" href="<c:url value="/resources/css/blueprint/print.css"/>" /> 

Al hacer clic en el archivo CSS a través de la vista de código en un navegador web, la respuesta del servidor asigna de nuevo a la página de índice, en lugar de la recurso. Me lleva a creer que está relacionado con el mapeo de servlets.

¡Cualquier ayuda con esto sería genial!

Gracias!

Editar: olvidó de mencionar, si me ato el controlador decir:

@Controller("/pages") 

Todo funciona bien, simplemente prefieren tener la raíz de contexto sea capaz de responder correctamente.

+0

¿Cuál es su medio ambiente? AFAIK Weblogic, por ejemplo, requiere una asignación explícita de css en mms en web.xml css text/css

+0

Sin embargo, descubrimos que el problema iba a actualizar la publicación, un problema extraño. – dardo

+0

volvió a actualizar la publicación para mostrar por qué – dardo

Respuesta

7
@Controller("/) 

y

@RequestMapping("/") 

no son la misma cosa.

Dado que @RequestMapping se puede ubicar en un nivel de clase, colocar la asignación en la clase tendrá el efecto deseado.

Ejemplo:

@Controller 
@RequestMapping("/") 
public class RootController 
{ 

    @RequestMapping(method=RequestMethod.GET) 
    public String index() 
    { 
    return "index"; 
    } 

} 

Esto funcionará correctamente, y también trabaja con el MVC: Grano de recursos.

+0

Lamentablemente, lo anterior no funciona para mí (Spring 4.3.1). ¿Alguna otra idea? –

+0

Aún debería funcionar, creo que el controlador no se está recogiendo debido al escaneo de componentes buscando en los paquetes incorrectos, o no teniendo ningún escaneo de componentes. @Controller es solo metadatos utilizados por Spring para indicar al escaneo de componentes que está disponible para el cableado como un frijol. Si no usa el escaneo de componentes, debe cablear el bean manualmente. – dardo

0

poner esta línea en mvc-despachador-servlet.xml

<bean name="/" 
     class="com.springapp.mvc.HelloController" /> 

que va a funcionar.

mapeo en web.xml

<servlet-mapping> 
    <servlet-name>mvc-dispatcher</servlet-name> 
    <url-pattern>/</url-pattern> 
</servlet-mapping> 
Cuestiones relacionadas