Conventions en Spring MVC

Este artículo lo tenía pensado hace tiempo, pero por falta de ello no me había dedicado a él. Había hecho mis pinitos con las Conventions hace tiempo con este artículo y este otro sobre JBullet pero no había tenido tiempo para hablar de como Spring incorpora las Conventions.

 

Como en el artículo anterior esbozaré lo que me parece más importante en este post y os dejaré un link a la wiki pública en la que tendréis información de cómo hacerlo en detalle.

 

 

Lo más importante se encuentra en el archivo de configuración Web [nombre del servlet]-servlet.xml, dónde el nombre del servlet es es el nombre que le hemos dado al servlet en el archivo Web.xml. El archivo tiene este aspecto:

 

 

<beans>

<bean id="viewNameTranslator" class="org.springframework.web.servlet.view.DefaultRequestToViewNameTranslator"/>
<bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value="/jsp/"/>
<property name="suffix" value=".jsp"/>
</bean >
<bean id="defaultHandlerMapping" class="org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping"/>
<bean name="/pruebaController.do" class="org.raul.springmvc.web.PruebaController"/>
</beans>

Ya sé que el XML no queda muy bien en el editor, pero menos es nada, la novedad radica en que cuando se hace una transición desde un controller al String que devulve se le concatena por delante /jsp/ y por detrás del String .jsp de tal manera que si ha devuelto el String hello buscará el archivo hello.jsp en el directorio jsp dentro del directorio Web, así no hay que poner a que JSP cada vez y eliminamos la navegación del fichero XML.
Por otro lado, en lo que a los Controllers se refiere sigue habiendo que declararlos en el contexto y en su atributo name especificamos con qué URL van a ser accedidos, pero es un mal menor.

Como lo prometido es deuda os dejo el link al artículo de la wiki:

http://www.programania.net/contextos/doku.php?id=conventions_en_spring_mvc

3 Comentarios

  • 1. marcos  |  Junio 16th, 2009 at 10:44 am

    Hola buenas.

    Si lo que quiero es no retornar una jsp y lo que quiero es pedir al servidor mediante ajax de forma asincrona, una serie de variables, o una lista, como tendria que configurar el servlet.xml? y que tipo de respueta daria el controlador.

    Yo la que uso es:

    return new ModelAndView(“respuesta”, “tuusuario”, “Te he insertado”);

    Pero esta no me sirve por que hace justo lo que no quiero envia una nueva jsp.

    No se si me pordras reponder a esto espero que si, pero esque no encuentro solucion y rebuscando por interner me he encontrado con esta web y he pensado en preguntar.

    Un saludo

  • 2. Raul  |  Julio 1st, 2009 at 7:37 pm

    Buenas Marcos,
    no he trabajado profesionalmente con Spring MVC, y por tanto su tampoco se mucho de su integración con Ajax. No obstante me acabas de dar una idea para un nuevo post. Iñaki y yo estamos barajando profundizar en este framework, ya Struts 1 se nos está quedando viejo y Struts 2 no nos termina de convencer. Si encuentro una solución a tu problema prometo ayudarte, no obstante, si tu la encuentra por favor compártela porque me parece muy interesante el integrar Ajax y Spring MVC.

    Gracias.

  • 3. Luis Artola  |  Julio 2nd, 2009 at 7:46 am

    Además, Raul tiene pendiente por ahí un artículo sobre Grails (groovy + rails) que se está convirtiendo en una buenísima alternativa a Struts, y que sigue las últimas tendencias que combinar una capa de scripting para el MVC con Spring y algún framework de persistencia como hibernate, etc….

    eh, raul… yo, por comentarlo, sin ánimo de presionarte…. :-D :-D :-D

Comenta el articulo:

Requerido

Requerido,