Integración de Spring MVC 3 + Maven + JSP pages

Este es el primero de una serie de tutoriales donde mostrare como hacer la integración de distintas tecnologías de desarrollo de software. Seguramente te ha pasado que debes iniciar un proyecto y después de analizar cuales tecnologías te conviene utilizar más, debes realizar la integración. Quizás ya hayas participado en distintos proyectos en distintas empresas y realizarla no es la gran cosa para ti, pero quizás de los proyectos existentes ya haya mucha complejidad, tal vez por la cantidad de tecnologías que utilizan los proyectos ya desarrollados o por la envergadura del proyecto, etc.

Esta serie de tutoriales intentan ofrecerte proyectos limpios creados a partir de cero para que no tengas que preocuparte demasiado en integrar tecnologías más comunes de desarrollo, espero te sirva alguno.

Tecnologías a integrar

  • Spring MVC Framework 3.2.13.RELEASE
  • Apache Maven 4.0.0
  • Java JSP Pages

Estructura del proyecto

Utilizaremos la siguiente estructura la cual es más o menos estándar para proyectos Front con Spring MVC.
Archivos del proyecto Eclipse

Archivo .POM de Maven


  
  4.0.0
  com.notasprogramacion
  Integracion1SpringMVC
  war
  1.0
  
  Integracion1SpringMVC Maven Webapp
  http://maven.apache.org
  
	
		1.7
		3.2.13.RELEASE
		1.2
	
	
	
	
		
			org.springframework
			spring-webmvc
			${spring.version}
		
		
			javax.servlet
			jstl
			${jstl.version}
		
	
	

	
		Integracion1SpringMVC
		
  		
			
				org.apache.maven.plugins
				maven-compiler-plugin
				3.3
				
					${jdk.version}
					${jdk.version}
				
			
    
    	
  


El Controlador

package com.notasprogramacion.controller;

import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Controller;
import org.springframework.ui.ModelMap;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;

import com.notasprogramacion.dto.UsuarioDto;

@Controller
public class HomeController {

	@Value("${app.urlhome}")
	private String urlHomeFront;
	
	@RequestMapping(value ="/", method = RequestMethod.GET)
	public String welcome(ModelMap model) {

		model.addAttribute("message", "Hola Mundo Spring MVC");
		model.addAttribute("usuario", new UsuarioDto(1, "Gonzalo Silverio"));
		model.addAttribute("urlHome", urlHomeFront);
		
		return "home";
	}
}

Una clase Modelo

package com.notasprogramacion.dto;

import java.io.Serializable;

public class UsuarioDto implements Serializable {

	private static final long serialVersionUID = -565342423787726341L;
	
	private Integer id;
	private String nombre;

	public UsuarioDto() {

	}

	public UsuarioDto(Integer id, String nombre) {
		this.id = id;
		this.nombre = nombre;
	}

	public Integer getId() {
		return id;
	}

	public void setId(Integer id) {
		this.id = id;
	}

	public String getNombre() {
		return nombre;
	}

	public void setNombre(String nombre) {
		this.nombre = nombre;
	}

	@Override
	public String toString() {
		return "UsuarioDto [id=" + id + ", nombre=" + nombre + "]";
	}

}

El archivo de propiedades de la aplicacion

app.name=IntegracionSpringMVC
app.description=Ejemplo de integracion de JSP + Spring MVC 3.2
app.urlhome=http://localhost:8080/IntegracionSpringMVC/

El descriptor de despliegue web.xml




	IntegracionSpringMVC
	
	
	
		contextConfigLocation
		/WEB-INF/spring/root-context.xml
	
	
	
	 	 	
		 	 	org.springframework.web.context.ContextLoaderListener
	

	
	
		appServlet
		org.springframework.web.servlet.DispatcherServlet
		
			contextConfigLocation
			/WEB-INF/spring/appServlet/spring-mvc-config.xml
		
		1
	
	
	
	
		appServlet
		/
	



Archivo para importación de Configuraciones de Spring

Aquí podría importar otros archivos de configuración de Spring, por ejemplo la configuración de tus beans para javamail o quartz, si utilizas seguridad con Spring aquí podrias importar el archivo de Spring Security, etc.



	
	
	
	
	 
	 


Archivo para creacion de beans de Spring

Este archivo podría servirte para declarar beans de Spring, por ejemplo los beans para la capa dao, la capa service, etc.




	
	


Archivo de Configuración Spring MVC

Este archivo se encarga específicamente de la configuración puramente de Spring MVC. Observa como se esta configurando de forma global el archivo de propiedades frontCore.properties; ahora si observas el controlador (archivo HomeController.java) podemos inyectar estas propiedades con la anotacion @Value.



	
	

	
		
			/WEB-INF/views/jsp/
		
		
			.jsp
		
	
	

	

	

La vista JSP

Se ha creado esta vista muy basica solo para mostrar como acceder a los atributos enviados en el mapa de esta vista, como acceder atributos de Dtos y como enlazar archivos css y javascript.

<%@ taglib prefix="spring" uri="http://www.springframework.org/tags"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>



	
		Maven + Spring MVC | ${message}
		
		
		 	 	
	
	
	
	


${message}

Bienvenido ${usuario.nombre} La URL Home del proyecto es: ${urlHome}

La hoja de estilos

body {
	background-color: #fffff;
}

h2{
	color: #9b9996;
}

p  {
	color: #32b0ff;
	font-weight: bold;
}

p span.cssURLs  {
	color: #ff9232;
	font-weight: bold;
}

El archivo de Javascript

var homeView = {
	
};

homeView.initContext = function() {
	console.log("JQuery ha sido inicializado");
};

$(document).ready(function(){
	homeView.initContext();
});

Despliegue del proyecto

Para desplegar el ejemplo lo puedes hacer con el siguiente comando de maven, con el cual no necesitas tener ningún servidor web instalado ya que el comando descarga los archivos necesarios del plugin de Apache Tomcat, levanta dicho servidor y despliega el proyecto de maven:

mvn clean install tomcat:run

Si el despliegue se realizo correctamente utiliza la siguiente URL en un navegador web para ver la aplicacion en ejecucion: http://localhost:8080/Integracion1SpringMVC/
ejecucionintegracion1

Descarga del codigo fuente

Si deseas obtener los archivos de código fuente del ejemplo, desde GitHub te los puedes descargar: desde aquí, hay varios ejemplos, la carpeta de este tutorial se llama Integracion1SpringMVC.

Como puedes ver es un ejemplo muy sencillo pero podría servir para continuar integrando otras tecnologías de desarrollo que pudieras necesitar. Si te gusto el tutorial no olvides dar like, así me motivas a continuar escribiendo sobre estos temas :D, saludos.

Deja una respuesta

Tu dirección de correo electrónico no será publicada.