https://docs.spring.io/spring-boot/docs/current/reference/html/common-application-properties.html
Primero, necesitamos agregar la dependencia spring-boot-starter-thymeleaf a nuestro pom.xml : https://springframework.guru/spring-boot-web-application-part-2-using-thymeleaf/
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>
Eso habilita Thymeleaf por defecto; no es necesaria ninguna configuración adicional.
Ahora podemos configurarlo en nuestra application.properties :
spring.thymeleaf.cache=false
spring.thymeleaf.enabled=true
spring.thymeleaf.prefix=classpath:/templates/
spring.thymeleaf.suffix=.html
spring.application.name=Bootstrap Spring Boot
A continuación, definiremos un controlador simple y una página de inicio básica, con un mensaje de bienvenida:
@Controller
public class SimpleController {
@Value("${spring.application.name}")
String appName;
@GetMapping("/")
public String homePage(Model model) {
model.addAttribute("appName", appName);
return "home";
}
}
Finalmente, aquí está nuestro home.html :
<html>
<head><title>Home Page</title></head>
<body>
<h1>Hello !</h1>
<p>Welcome to <span th:text="${appName}">Our App</span></p>
</body>
</html>
primera forma solo si quieres renderizar la vista sin pasar objeto a la vista
@GetMapping("/example")
public String homePage() {
return "home";
}
segunda forma
para retornar con modelos o datos
```
@GetMapping("/example")
public ModelAndV homePage() {
return new ModelAndV( "home");
}
```
<span th:text="${name}"></span
-----controlador
@GetMapping("/example")
public String homePage(Model model) {
//nombre de la variable despues el valor que se quiere insertar
model.addAttribute("name","valor Jon");
return "home";
}
segunda forma
para retornar con modelos o datos
```
@GetMapping("/example")
public ModelAndV homePage() {
//en el contructor el nombre de la plantilla
ModelAndV mov = new ModelAndV("home");
//nombre de la variable despues el valor que se quiere insertar
mov.addObject("name","valor Jon");
return mov;
}
```
--controlador
@GetMapping("/example")
public String homePage(Model model) {
//nombre de mapear despues el valor que se quiere insertar
model.addAttribute("person",new Person("enrique",23));
return "home";
}
segunda forma
para retornar con modelos o datos
```
@GetMapping("/example")
public ModelAndV homePage() {
//en el contructor el nombre de la plantilla
ModelAndV mov = new ModelAndV("home");
//nombre de la variable despues el valor que se quiere insertar
mov.addObject("person",new Person("enrique",23));
return mov;
}
```
---template
<span th:text="${person.name}"></span>
----controlador
@GetMapping("/example")
public String homePage(Model model) {
//metodo que retorna una ista de persona
model.addAttribute("person",getPerson());
return "home";
}
segunda forma
para retornar con modelos o datos
```
@GetMapping("/example")
public ModelAndV homePage() {
//en el contructor el nombre de la plantilla
ModelAndV mov = new ModelAndV("home");
//nombre de la variable despues el valor que se quiere insertar
mov.addObject("person", getPerson());
return mov;
}
```
----template
<table>
<thead>
<tr>
<th> nombre </th>
<th>edad </th>
</tr>
</thead>
<tbody th:each="person :${people}">
<tr>
<th th:text="${person.name}"> </th>
<th th:text="${person.edad}"></th>
</tr>
</tbody>
</table>
Antes de continuar con las clases, quiero que sepas identificar y corregir los errores que pueden surgirte cuando intentamos mostrar una vista en el navegador, para ello:
Crea un controlador llamado "Example4Controller". Crea un método simple en el que sólo devuelva una vista. Primero devuelve la página 404.html que encontrarás en la carpeta "templates". Arranca el servidor, llama al path indicado y observa la traza de error en la consola. Corrígelo y vuelve a intentarlo hasta que se visualice correctamente. Repite esto mismo para la página 500.html que encontrarás en la misma carpeta. Ignora el fallo que hace no mostrarse la vista, lo corregiremos juntos en la próxima clase.
Es importante que aprendas a leer y entender el log... Thymeleaf destaca por facilitarnos mucha información de los errores.
¿Lo has conseguido? Pues pasa a la siguiente clase.
Si no lo consigues, recuerda que me tienes a tu disposición para cualquier duda.
Be Ninja :)