Verborgen ingangen gebruiken met lente en thymeleaf

1. Inleiding

Thymeleaf is een van de meest populaire sjabloonengines in het Java-ecosysteem. Het stelt ons in staat om eenvoudig gegevens uit onze Java-applicaties te gebruiken om dynamische HTML-pagina's te maken.

In deze tutorial zullen we verschillende manieren bekijken om verborgen inputs te gebruiken met Spring en Thymeleaf.

2. Thymeleaf met HTML-formulieren

Laten we, voordat we kijken naar het werken met verborgen velden, een stap terug doen en kijken hoe Thymeleaf in het algemeen met HTML-formulieren werkt.

De meest voorkomende use case is om een ​​HTML-formulier te gebruiken dat rechtstreeks naar een DTO in onze applicatie verwijst.

Laten we bijvoorbeeld aannemen dat we een blogtoepassing schrijven en een DTO hebben die een enkele blogpost vertegenwoordigt:

klasse BlogDTO {lange id; String titel; String lichaam; String categorie; String auteur; Datum gepubliceerd Datum; }

We kunnen een HTML-formulier gebruiken om een ​​nieuw exemplaar van deze DTO te maken met Thymeleaf en Java:

Merk op dat de velden in onze blogpost DTO verwijzen naar een enkele invoer in het HTML-formulier. Dit werkt in de meeste gevallen goed, maar welke velden zouden niet bewerkbaar moeten zijn? Dit is waar verborgen inputs kunnen helpen.

Elke blogpost heeft bijvoorbeeld een uniek ID-veld dat gebruikers niet mogen bewerken. Met behulp van verborgen invoer kunnen we het ID-veld doorgeven aan het HTML-formulier zonder dat het kan worden weergegeven of bewerkt.

3. Gebruik de th: veld Attribuut

De snelste manier om een ​​waarde aan een verborgen invoer toe te wijzen, is door de th: veld attribuut:

Dit is de eenvoudigste manier omdat we het waardeattribuut niet hoeven op te geven, maar het wordt mogelijk niet ondersteund in oudere versies van Thymeleaf.

4. Gebruik de do: attr Attribuut

De volgende manier waarop we verborgen ingangen met Thymeleaf kunnen gebruiken, is door de ingebouwde do: attr attribuut:

In dit geval moeten we verwijzen naar de ID kaart veld met behulp van de blog voorwerp.

5. Gebruik de naam Attribuut

Een andere, minder uitgebreide benadering is om de standaard HTML te gebruiken naam attribuut:

Het is uitsluitend gebaseerd op standaard HTML-attributen. In dit geval moeten we ook verwijzen naar de ID kaart veld met behulp van de blog voorwerp.

6. Conclusie

In deze tutorial hebben we verschillende manieren bekeken om verborgen inputs te gebruiken met Thymeleaf. Dit is een handige techniek om alleen-lezen velden van onze DTO's in HTML-formulieren door te geven.

Zoals altijd zijn alle codevoorbeelden die in deze tutorial worden gebruikt, te vinden op Github.