:::: MENU ::::

Spring MVC


Spring MVC es un marco de trabajo que separa los componentes de una aplicación Web en tres capas (modelo, vista y controlador).

Instalación

Es necesario usar las dependencias de este marco de trabajo, ya sea añadiéndolas a nuestro proyecto manualmente o usando un gestor. De usar Maven podemos añadir la siguiente configuración al fichero pom.xml:


	<dependencies>
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-thymeleaf</artifactId>
		</dependency>
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-devtools</artifactId>
<optional>true</optional>
		</dependency>
	</dependencies>

	<properties>
		<java.version>1.9</java.version>
	</properties>


	<build>
		<plugins>
			<plugin>
				<groupId>org.springframework.boot</groupId>
				<artifactId>spring-boot-maven-plugin</artifactId>
			</plugin>
		</plugins>
	</build>

Thymeleaf y el prototipado

Podemos usar un motor de plantillas Java como es Thymeleaf. De este modo podemos previsualizar nuestros ficheros HTML sin ejecutar la aplicación y hacer tantos cambios de diseño como queramos, sin la necesidad de desplegar la aplicación. Esto, sin embargo, no puede hacerse con tecnología JSP.

Ejemplo

Vamos a crear una aplicación que, accediento a la ruta http://localhost:8080/myurl nos devuelva una página con un mensaje establecido en un componente Java.

En primer lugar creamos la plantilla (usando el espacio de nombres de Thymeleaf). Situamos este fichero en la ruta src/main/resources/templates.

myPage.html

<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org">
<head>
<meta charset="ISO-8859-1" />
<title>My title</title>
</head>
<body>
	

</body>
</html>

El contenido del elemento ${myAttribute} se establecerá en un componente Java.

Ahora creamos el controlador, a través del cual y según la URL a la que accedamos, ejecutará un método concreto.

MyController.java

package com.luisgomezcaballero.spring_mvc_demo;

import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;

@Controller
public class MyController {

	@RequestMapping("/myurl")
	public String myMethod(Model model) {
		model.addAttribute("myAttribute", "Hello World!");
		return "myPage";
	}

}

Y por último y para poder arrancar la aplicación, creamos una clase Main.

Main.java

package com.luisgomezcaballero.spring_mvc_demo;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
public class Main  {

	public static void main(String[] args) {
		SpringApplication.run(Main .class, args);
	}

}

Para ejecutar esta aplicación clic derecho sobre la clase Main, Run As/Java Application. Arrancará el servidor Tomcat embebido y podremos acceder a http://localhost:8080/myurl, donde veremos el mensaje que establecimos en el controlador.

Repositorio

El contenido de este proyecto está disponible en https://github.com/luisgomezcaballero/spring-mvc-demo.


So, what do you think ?