Controlador Spring 3 y rutas relativas

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

preguntado el 12 de junio de 12 a las 20:06

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í? -

@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? -

@Adam: una pista: es posible que desee configurar log4j para ver qué está haciendo Spring URL resolver -

1 Respuestas

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 or haz tu propia pregunta.