Spring Boot Thymeleaf Intro
Spring Boot Thymeleaf Intro
@GetMapping("/miUrl")
public String mostrarHome() {
// Mi lógica de negocio PETICIÓN TIPO GET
return "home";
} Cuando se utiliza el motor de plantillas
Thymeleaf se buscará un archivo (vista)
llamado home.html en el directorio:
} src/main/resources/templates
¿Qué es Thymeleaf? (1)
Thymeleaf es un motor de plantillas para aplicaciones web desarrolladas con Java.
Es algo similar a los JSPs, con algunas diferencias.
Página Oficial: www.thymeleaf.org
Comúnmente utilizado con Spring Boot para generar vistas con código HTML para
aplicaciones web.
En un proyecto Spring boot, ya viene configurado Thymeleaf con valores por defecto
al momento de agregar la dependencia.
Configuración
Agregar la siguiente dependencia al archivo pom.xml:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>
¿Qué es Thymeleaf? (2)
Configuración
Si creamos nuestro proyecto con Spring Initializr:
Ejemplo:
Vista(detalle.html) Controlador
@GetMapping("/detalle")
<tr th:each="tmpEmp: ${empleos}"> public String mostrarDetalle(Model model) {
List<String> lista = new LinkedList<>();
<td th:text="${tmpEmp}" /> lista.add("Ingeniero de Sistemas");
lista.add("Auxiliar de Contabilidad");
</tr> model.addAttribute("empleos", lista);
return "detalle";
}
Condicionales en Thymeleaf
Operador Elvis (?:)
El operador Elvis permite renderizar texto DENTRO de un elemento HTML,
dependiendo de una expresión Booleana. Es muy similar al operador ternario en otros
lenguajes de programación.
Ejemplo:
if – unless
La expresión if - unless permite renderizar un elemento HTML, dependiendo de una
expresión Booleana. Es muy similar a un if-else en otros lenguajes de programación.
Ejemplo:
<td>
<span th:if="${alumno.genero == 'F'}"> Femenino </span>
<span th:unless="${alumno.genero == 'F'}"> Masculino </span>
</td>
Urls relativas al ContextPath en Thymeleaf
Las URLs relativas al ContextPath son las que son relativas al directorio raíz (ROOT) de una aplicacion
web, una vez que están publicadas en el servidor.
Las URLs relativas al ContextPath deben iniciar con "/" cuando vayamos a formar una URL para
referenciar un recurso (imagenes, CSS, JS, PDF, etc) en nuestra aplicacion.
En un proyecto web cuando se utiliza Thymeleaf como motor de plantillas, los recursos estáticos
deben guadarse en el directorio src/main/resources/static
Ejemplos:
• Para incluir el archivo CSS myStyles.css en una vista se utilizaría la siguiente expresión:
<link th:href="@{/css/myStyles.css}" rel="stylesheet">
• Para incluir el archivo Javascript funciones.js en una vista se utilizaría la siguiente expresión:
<script th:src="@{/js/funciones.js}"></script>
• Para incluir la imagen foto.png en una vista, se utilizaría la siguiente expresión:
<img th:src="@{/images/foto.png}" width="136" height="136" >
Para incluir archivos Javascript y CSS vía CDN (Content Delivery Network) se utiliza la sintáxis
estándar (sin expresiones Thymeleaf).
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.1.3/css/bootstrap.min.css">
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.1.3/js/bootstrap.min.js"></script>