Skip to content

Vues

Bases

Pour joindre des données à une vue, on se sert de la classe org.springframework.ui.Model. On en récupère une instance par injection de dépendance sur notre fonction de handler.

1
2
3
4
5
6
7
@Controller
public class MyController {
    @GetMapping("/")
    public void index(Model model) {
        // ...
    }
}

Ce modèle va nous permettre d'ajouter des données qu'on voudra par la suite afficher sur notre vue.

Additionnellement, pour que Spring sache quelle vue utiliser, il faut renvoyer, en résultat de notre méthode, son nom (le nom de index.html étant index).

1
2
3
4
5
6
7
8
@Controller
public class MyController {
    @GetMapping("/")
    public String index(Model model) {
        // ...
        return "index";
    }
}

Spring va alors chercher à render la template disponible au chemin /templates/index.html. Si le projet est géré par gradle ou maven, ce dossier templates doit être présent dans /main/resources/.

Résumé rapide de Thymeleaf

Namespace

Pour correctement composer un fichier HTML utilisant le format thymeleaf, il faut inclure le namespace th.

L'inclusion s'effectue au niveau du tag ouvrant <html>.

1
2
3
4
<!doctype HTML>
<html xmlns:th="http://www.thymeleaf.org/">
<!-- ... -->
</html>

Résumé des tags

NOTE: Toute variable passée au modèle est accessible suivant la syntaxe ${key}, où key est la clé définie en premier paramètre de la fonction Model::addParameter.

  • th:text#"${value}": Définit le contenu du tag (<p th:text#"meow" /> #> <p>meow</p>)
  • th:each#"item : ${list}": Itère sur la liste de la variable list