Directiva If con Thymeleaf

Para ver la directiva if de Thymeleaf vamos agregar mas atributos a nuestro modelo.

package com.oregoom.web.app.personal.models;
public class Project {
    
    private String title;
    private String description;
    private String url;
    
    public Project() {
        
    }
    public Project(String title, String description) {
        this.title = title;
        this.description = description;
    }
    
    public Project(String title, String description, String url) {
        this.title = title;
        this.description = description;
        this.url = url;
    }
    public String getTitle() {
        return title;
    }
    public void setTitle(String title) {
        this.title = title;
    }
    public String getDescription() {
        return description;
    }
    public void setDescription(String description) {
        this.description = description;
    }
    
    public String getUrl() {
        return url;
    }
    public void setUrl(String url) {
        this.url = url;
    }
    
}

Luego crearemos mas objetos y enviamos a la vista.

@Controller
@RequestMapping("/project") //Primer Nivel de Mapeo 
public class ProjectController {
    @GetMapping({"","/","/Home"}) //Segundo Nivel de Mapeo
    public String projects(Model model) {
        
        Project p1 = new Project(
                "Proyecto 01",
                "Descripción del proyecto 01"
                );
        
        Project p2 = new Project(
                "Proyecto 02",
                "Descripción del proyecto 02",
                "https://oregoom.com"
                );
        
        
        model.addAttribute("p1", p1);
                model.addAttribute("p2", p2);
        return "projects";
    }
}

Ahora aplicaremos la directiva if para saber si todos tienen url o no.

<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org">
<head>
<meta charset="UTF-8">
<title>Alex Roel - Project</title>
</head>
<body>
    <h1>Mis Proyectos</h1>
    <h2 th:text="${p1.title}"></h2>
    <p th:text="${p1.description}"></p>
    <samp th:if="${p1.url == null}">
                no tiene URL
        <a th:href="${project.url}">Mas Información</a>
    </samp>
        <h2 th:text="${p2.title}"></h2>
    <p th:text="${p2.description}"></p>
    <samp th:if="${p2.url != null}">
                si tiene URL
        <a th:href="${p2.url}">Mas Información</a>
    </samp>
</body>
</html>