Utilisation d'entrées masquées avec Spring et Thymeleaf

1. Introduction

Thymeleaf est l'un des moteurs de modèles les plus populaires de l'écosystème Java. Il nous permet d'utiliser facilement les données de nos applications Java pour créer des pages HTML dynamiques.

Dans ce didacticiel, nous examinerons plusieurs façons d'utiliser les entrées masquées avec Spring et Thymeleaf.

2. Thymeleaf avec formulaires HTML

Avant de travailler avec les champs masqués, prenons du recul et voyons comment Thymeleaf fonctionne avec les formulaires HTML en général.

Le cas d'utilisation le plus courant consiste à utiliser un formulaire HTML qui correspond directement à un DTO dans notre application .

Par exemple, supposons que nous écrivons une application de blog et que nous ayons un DTO qui représente un seul article de blog:

class BlogDTO { long id; String title; String body; String category; String author; Date publishedDate; }

Nous pouvons utiliser un formulaire HTML pour créer une nouvelle instance de ce DTO en utilisant Thymeleaf et Java:

Notez que les champs de notre article de blog DTO correspondent à une seule entrée dans le formulaire HTML. Cela fonctionne bien dans la plupart des cas, mais quels champs ne devraient pas être modifiables? C'est là que les entrées cachées peuvent aider.

Par exemple, chaque article de blog a un champ ID unique que les utilisateurs ne doivent pas être autorisés à modifier. En utilisant des entrées cachées, nous pouvons transmettre le champ ID dans le formulaire HTML sans permettre son affichage ou sa modification .

3. Utilisation de l' attribut th: field

Le moyen le plus rapide d'attribuer une valeur à une entrée masquée consiste à utiliser l' attribut th: field :

C'est le moyen le plus simple car nous n'avons pas à spécifier l'attribut value, mais il peut ne pas être pris en charge dans les anciennes versions de Thymeleaf .

4. Utilisation de l' attribut th: attr

La prochaine façon dont nous pouvons utiliser les entrées cachées avec Thymeleaf consiste à utiliser l' attribut intégré th: attr :

Dans ce cas, nous devons référencer le champ id en utilisant l' objet blog .

5. Utilisation du nom Attribute

Une autre approche moins verbeuse consiste à utiliser l' attribut de nom HTML standard :

Il repose uniquement sur des attributs HTML standard. Dans ce cas, nous devons également référencer le champ id à l'aide de l' objet blog .

6. Conclusion

Dans ce didacticiel, nous avons examiné plusieurs façons d'utiliser les entrées masquées avec Thymeleaf. Il s'agit d'une technique utile pour transmettre des champs en lecture seule de nos DTO dans des formulaires HTML.

Comme toujours, tous les exemples de code utilisés dans ce tutoriel peuvent être trouvés sur Github.