Spring - MVC : Primeros pasos
Spring - MVC es uno de los módulos del Framework de Spring, y como su propio nombre nos indica implementa una arquitectura Modelo - Vista - Controlador que utilizaremos como base para desarrollar nuestra aplicación web.
Si ya has utilizado antes el Framework de Struts, que también implementa una arquitectura MVC, no tendrás muchos problemas en utilizar este módulo.
Partiendo de una aplicación web
Sabemos que necesitamos nuestras herramientas Java (JDK), un IDE (hoy por hoy Eclipse es el rey y yoxos su profeta) y un servidor de aplicaciones (Tomcat siempre es una buena elección).
Bueno, pues con todo listo partimos de una aplicación web, que llamaremos holamundo. Para comenzar nos basta un nuevo proyecto web dinámico con un fichero de bienvenida, index.jsp. Recuerda que se indica en el web.xml la lista de ficheros de bienvenida.
Desplegando la aplicación en nuestro servidor de aplicaciones deberíamos ver nuestra página de bienvenida introduciendo en nuestro navegador la URL <URL_Servidor_Aplicaciones>/holamundo (si el servidor está en nuestro ordenador, http://localhost:8080/holamundo).
Librerías Spring - MVC
Añadimos lo primero las librerías del Tomcat. Encima del proyecto, botón derecho > Propiedades > Java Build Path > en la pestaña de Librerías > Añadir Librería > Server Runtime > Seleccionamos el Servidor de Aplicaciones (Tomcat)
Ahora añadiremos las librerías que necesitamos para utilizar Spring - MVC. Las necesarias son :
- spring.jar, contiene las clases del núcleo de spring.
- spring-mvc.jar, contiene las clases del módulo de MVC de Spring.
Normalmente también añadiremos al menos
- standard.jar y jstl.jar para utilizar etiquetas JSTL en nuestro proyecto.
- commons-logging.jar (o log4j.jar) para el logging de nuestra aplicación.
- junit.jar para utilizar JUNIT para las pruebas de nuestras clases. Evidentemente si eres español esto te sobra, porque aquí programamos como los hombres, a pelo, a pecho descubierto y con las luces en el traje.
Configurando Spring - MVC
Debemos indicar ahora a nuestra aplicación web que utilice la servlet de Spring. Sip, eso lo hacemos en el web.xml. En este ejemplo definimos una servlet (holamundo) que responderá al encontrar una URL con el patrón *.lycka.
<servlet>
<servlet-name>holamundo</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>holamundo</servlet-name>
<url-pattern>*.lycka</url-pattern>
</servlet-mapping>
Y Spring MVC también tiene su archivo de configuración, al estilo del struts-config.xml de Struts. En este caso el nombre es el nombre de la servlet (<servlet-name>) seguido de "-servlet.xml". En este caso, holamundo-servlet.xml.
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-2.5.xsd">
<!– the application context definition for the springapp DispatcherServlet –>
<bean name="/holamundo.html" class="es.lycka.holamundo.control.HolaMundoController"/>
<bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="viewClass" value="org.springframework.web.servlet.view.JstlView"></property>
<property name="prefix" value="jsp/"></property>
<property name="suffix" value=".jsp"></property>
</bean>
</beans>
Hemos a definir un controlador (es.lycka.holamundo.control.HolaMundoController), que atenderá la llamada a un path ("/holamundo.lycka").
<bean name="/holamundo.lycka" class="es.lycka.holamundo.control.HolaMundoController"/>
Este controlador realizará sus operaciones pertinentes, y según su resultado decidirá el siguiente paso : devolverá como resultado una vista (una jsp) con sus parámetros correspondientes. En este caso, se dirigirá a la vista "holamundo" pasando un parámetro, "ahora".
public class HolaMundoController implements Controller {
protected final Log logger = LogFactory.getLog(getClass());
public ModelAndView handleRequest(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
String ahora = (new Date()).toString();
logger.info("Se dirige a la vista holamundo con ahora = " + ahora);
return new ModelAndView("holamundo", "ahora", ahora);
}
}
Ahora entra en juego el otro bean definido en nuestro xml, "viewResolver". Para independizar la ubicación de los ficheros de las vistas de los contraldores podemos definir reglas para encontrar la vista a partir de su nombre. En este caso, van a estar dentro del directorio "jsp/" y su extensión será ".jsp".
Así que nos queda construir la jsp que responderá, holamundo.jsp dentro del directorio jsp.
Puf, mucho trabajo no? Bueno, llegados a este punto deberíamos de poder desplegar en nuestro servidor y probar qué nos devuelve si introducimos en nuestro navegador la ruta "<URL_Servidor_Aplicaciones>/holamundo/holamundo.lycka". Cruzamos los dedos y…
Más información
- Spring Framework, el sitio web del framework de spring. Podrás consultar documentación y bajarte documentación, librerías , código y aplicaciones simples a modo de ejemplo.
- Developing a Spring Framework MVC application step-by-step.
Technorati Tags: Spring Framework, Spring-MVC




























Lycka Bonita » Spring - MVC : Capa de negocio dijo
4 de July del 2008 a las 8:35 am
[...] un poco más en nuestros conocimientos básicos de Spring - MVC. Vamos a extraer el negocio de nuestras clases controlers y vamos a llevarlos a nuevas clases de la [...]
Lycka Bonita » Integrar Struts con Spring - TeorÃa dijo
18 de July del 2008 a las 7:21 am
[...] ya tenemos un proyecto con Spring - MVC (holamundo) y otro con Struts (holamundoStruts138). Cuál utilizaremos para desarrollar ? Eso lo dejo [...]