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 ?