2011-09-14 7 views
9

sé que en primavera debo definir welcome-file, que debe estar fuera de la carpeta WEB-INF, así que lo definen así:primavera-file-list de bienvenida asignación correcta

web.xml:

<welcome-file-list> 
    <welcome-file>index.jsp</welcome-file> 
</welcome-file-list> 


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

Pero en realidad mi código real es en WEB-INF/jsp/contact.jsp

por eso siempre tengo que hacer esto:

<jsp:forward page="/index"></jsp:forward> 

Y en mi controlador de esto significa:

@RequestMapping("/index") 
public String listContacts(Map<String, Object> map) { 

    map.put("contact", new Contact()); 
    map.put("contactList", contactService.listContact()); 

    return "contact"; 
} 

¿Cómo puedo hacerlo de esta manera, que welcome-file siempre va a mi asignación de índice, lo que conduce a contact.jsp?

dude en hacer preguntas, si esto era confuso ...

Respuesta

22
@RequestMapping({"/index", "/"}) 

y

<welcome-file-list> 
    <welcome-file></welcome-file> 
</welcome-file-list> 

trabajó para mí.

+0

No hay resultados para solicitud HTTP con URI [/ web /] en DispatcherServlet con el nombre 'primavera', actualizado primer mensaje (añadido servlet-mapping en web.xml) de mapeo. – Jaanus

+0

@Jaanus - ver actualización – Bozho

+1

¡Funcionó, gracias! ¿Es razonable hacerlo, o debería tener un archivo de bienvenida? – Jaanus

0

Intente utilizar

<welcome-file-list> 
    <welcome-file>/index</welcome-file> 
</welcome-file-list> 
+0

No se ha encontrado ninguna correspondencia para la solicitud HTTP con URI [/ web /] en DispatcherServlet con el nombre 'spring', primera publicación actualizada (mapeo de servlet añadido en web.xml). – Jaanus

4

Véase mi respuesta: https://stackoverflow.com/a/15551678/173149 o simplemente:

<servlet-mapping> 
    <servlet-name>dispatcher</servlet-name> 
    <url-pattern>/</url-pattern> 
    <url-pattern>/index.htm</url-pattern> <<== *1* 
</servlet-mapping> 
<welcome-file-list> 
    <welcome-file>index.htm</welcome-file> <<== *2* 
</welcome-file-list> 
2

En caso de configuración de Java se puede reemplazar dos métodos en la clase que se extiende WebMvcConfigurerAdapter

@Override 
public void addViewControllers(ViewControllerRegistry registry) { 
    registry.addViewController("/").setViewName("/index"); 
} 

@Override 
public void configureDefaultServletHandling(DefaultServletHandlerConfigurer configurer) { 
    configurer.enable(); 
} 

Si quieres mostrar index.html de forma explícita, conviértalo en una anulación de recursos un método en la misma clase de la siguiente manera:

@Override 
public void addResourceHandlers(ResourceHandlerRegistry registry) { 
    registry.addResourceHandler("/index.html").addResourceLocations("/WEB-INF/views/index.html"); 
} 

Por supuesto addResourceLocations mosto sigue la carpeta elegido para sostener sus puntos de vista.

Ver these samples

Cuestiones relacionadas