Brug af skjulte input med Spring og Thymeleaf
1. Introduktion
Thymeleaf er en af de mest populære skabelonmotorer i Java-økosystemet. Det giver os mulighed for nemt at bruge data fra vores Java-applikationer til at oprette dynamiske HTML-sider.
I denne vejledning ser vi på flere måder at bruge skjulte input med Spring og Thymeleaf på.
2. Thymeleaf med HTML-formularer
Før vi ser på at arbejde med skjulte felter, lad os tage et skridt tilbage og se på, hvordan Thymeleaf fungerer generelt med HTML-formularer.
Den mest almindelige brugssag er at bruge en HTML-formular, der kortlægges direkte til en DTO i vores applikation.
Lad os for eksempel antage, at vi skriver en blogapplikation og har en DTO, der repræsenterer et enkelt blogindlæg:
klasse BlogDTO {lang id; String titel; String krop; Strengkategori; Stringforfatter; Dato offentliggjort Dato; }
Vi kan bruge en HTML-formular til at oprette en ny forekomst af denne DTO ved hjælp af Thymeleaf og Java:
Bemærk, at felterne i vores blogindlæg DTO kortlægger et enkelt input i HTML-formularen. Dette fungerer i de fleste tilfælde godt, men hvilke felter skal ikke kunne redigeres? Det er her skjulte input kan hjælpe.
For eksempel har hvert blogindlæg et unikt id-felt, som brugerne ikke skal have tilladelse til at redigere. Ved hjælp af skjulte input kan vi overføre ID-feltet til HTML-formularen uden at lade det vises eller redigeres.
3. Brug af th: felt Attribut
Den hurtigste måde at tildele en værdi til en skjult input er at bruge th: felt attribut:
Dette er den enkleste måde, fordi vi ikke behøver at specificere værdiattributten, men det understøttes muligvis ikke i ældre versioner af Thymeleaf.
4. Brug af th: attr Attribut
Den næste måde, hvorpå vi kan bruge skjulte input med Thymeleaf, er at bruge den indbyggede th: attr attribut:
I dette tilfælde skal vi henvise til id felt ved hjælp af blog objekt.
5. Brug af navn Attribut
En anden mindre detaljeret tilgang er at bruge standard HTML navn attribut:
Det afhænger udelukkende af standard HTML-attributter. I dette tilfælde skal vi også henvise til id felt ved hjælp af blog objekt.
6. Konklusion
I denne vejledning så vi på flere måder at bruge skjulte input med Thymeleaf på. Dette er en nyttig teknik til overføring af skrivebeskyttede felter fra vores DTO'er til HTML-formularer.
Som altid kan alle kodeeksemplerne, der bruges i denne vejledning, findes på Github.