Utilizzo di input nascosti con Spring e Thymeleaf

1. Introduzione

Thymeleaf è uno dei motori di template più popolari nell'ecosistema Java. Ci consente di utilizzare facilmente i dati delle nostre applicazioni Java per creare pagine HTML dinamiche.

In questo tutorial, esamineremo diversi modi per utilizzare gli input nascosti con Spring e Thymeleaf.

2. Foglia di timone con moduli HTML

Prima di esaminare come lavorare con i campi nascosti, facciamo un passo indietro e guardiamo come funziona Thymeleaf con i moduli HTML in generale.

Il caso d'uso più comune è quello di utilizzare un modulo HTML che mappa direttamente a un DTO nella nostra applicazione .

Ad esempio, supponiamo di scrivere un'applicazione blog e di avere un DTO che rappresenta un singolo post del blog:

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

Possiamo utilizzare un modulo HTML per creare una nuova istanza di questo DTO utilizzando Thymeleaf e Java:

Si noti che i campi nel DTO del post del blog sono mappati a un singolo input nel modulo HTML. Funziona bene nella maggior parte dei casi, ma quali campi non dovrebbero essere modificabili? È qui che gli input nascosti possono aiutare.

Ad esempio, ogni post del blog ha un campo ID univoco che gli utenti non dovrebbero essere autorizzati a modificare. Utilizzando input nascosti, possiamo passare il campo ID nel modulo HTML senza consentirne la visualizzazione o la modifica .

3. Utilizzando il th: campo Attribute

Il modo più rapido per assegnare un valore a un input nascosto è utilizzare l' attributo th: field :

Questo è il modo più semplice perché non è necessario specificare l'attributo value, ma potrebbe non essere supportato nelle versioni precedenti di Thymeleaf .

4. Utilizzando il th: attr attributo

Il prossimo modo in cui possiamo usare gli input nascosti con Thymeleaf è usare l' attributo th: attr incorporato :

In questo caso, dobbiamo fare riferimento al campo id utilizzando l' oggetto blog .

5. Utilizzo del nome Attribute

Un altro approccio meno dettagliato consiste nell'usare l' attributo standard del nome HTML :

Si basa esclusivamente sugli attributi HTML standard. In questo caso, dobbiamo anche fare riferimento al campo id utilizzando l' oggetto blog .

6. Conclusione

In questo tutorial, abbiamo esaminato diversi modi per utilizzare gli input nascosti con Thymeleaf. Questa è una tecnica utile per passare i campi di sola lettura dai nostri DTO ai moduli HTML.

Come sempre, tutti gli esempi di codice utilizzati in questo tutorial possono essere trovati su Github.