Controlador Spring 3 y rutas relativas
Frecuentes
Visto 1,412 veces
1
Tratando de familiarizarse con los controladores Spring MVC. Pero tener un problema con las rutas relativas
Tengo una pagina en:
http://localhost:8080/jeeniweb/articles
en esa página hay una opción de menú:
<li><a href="articles/writing_great_code/structure_and_dependencies/">Structure and Dependencies</a></li>`
Esto, en un navegador, se resuelve en:
http://localhost:8080/jeeniweb/articles/writing_great_code/structure_and_dependencies/
Cuando un usuario hace clic en este enlace, intercepto esta solicitud con un controlador:
@RequestMapping(value = "/articles/{article}/{chapter}")
public String articles(@PathVariable String article, @PathVariable String chapter)
{
System.out.println("Articles Page Request");
System.out.println("article: " + article);
System.out.println("chapter: " + chapter);
return "articles/index";
}
Este método captura la solicitud y la println
methdods imprime las cosas correctas. Sin embargo, después de la llamada quiero:
http://localhost:8080/jeeniweb/articles
Pero, de hecho, el navegador va a:
http://localhost:8080/mysite/articles/writing_great_code/structure_and_dependencies/
¿Cómo puede ser esto cuando estoy regresando? articles/index
del método?
Mi configuración de Servlet es:
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="viewClass" value="org.springframework.web.servlet.view.JstlView"/>
<property name="prefix" value="/WEB-INF/views/"/>
<property name="suffix" value=".jsp"/>
</bean>
Según entiendo Spring, esto significa que el retorno resultante después del procesamiento del código anterior debe ser /WEB-INF/views/articles/index.jsp
que es lo que quiero. Ahí es donde está la página index.jsp.
Cualquier ayuda es muy apreciada.
Gracias adam
1 Respuestas
0
El controlador solo sabe que interceptó la URL correcta, para resolver artículos/url de índice, debe hacer que devuelva una redirección a esa URL, como:
return "redirect:articles/index"
Respondido el 13 de junio de 12 a las 14:06
Esto no es correcto. cuando usas redirect:
intenta encontrar el controlador con este mapeo, no la página jsp que quiere mostrar. - Japón Trivedi
Vuelve a leer la pregunta, es correcta. Se pregunta por qué cuando devuelve los artículos/índice de String le da la vista correcta, pero la URL incorrecta. Dado que la última URL que buscó es la URL RESTful de localhost:8080/mysite/articles/writing_great_code/… Se debe indicar a Spring que redirija a artículos/índice; de lo contrario, solo representará la vista relacionada con la cadena devuelta, en este caso, "artículos/índice". dardo
No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas rest spring-mvc controller or haz tu propia pregunta.
Esto está muy cansado. Deberia de funcionar. Todo es perfecto. Y si no se encuentra la página, debe arrojar el error 404. ¿Puede mostrar el contenido de su página de artículos/index.jsp aquí? - Japan Trivedi
@Adam: +1 por la pregunta bien escrita. Todavía no veo nada malo, pero esto puede ser algo con la resolución de vista... ¿podría mostrar también la parte de mapeo de servlet? - Hoàng Long
@Adam: una pista: es posible que desee configurar log4j para ver qué está haciendo Spring URL resolver - Hoàng Long