Variabili del percorso primaverile con foglia di timone

1. Introduzione

In questo breve tutorial, impareremo come utilizzare Thymeleaf per creare URL utilizzando le variabili di percorso Spring.

Usiamo le variabili di percorso quando vogliamo passare un valore come parte dell'URL. In un controller Spring, accediamo a questi valori utilizzando l' annotazione @PathVariable .

2. Utilizzo delle variabili di percorso

Per prima cosa, impostiamo il nostro esempio creando una semplice classe Item :

public class Item { private int id; private String name; // Constructor and standard getters and setters }

Ora, creiamo il nostro controller:

@Controller public class PathVariablesController { @GetMapping("/pathvars") public String start(Model model) { List items = new ArrayList(); items.add(new Item(1, "First Item")); items.add(new Item(2, "Second Item")); model.addAttribute("items", items); return "pathvariables/index"; } @GetMapping("/pathvars/single/{id}") public String singlePathVariable(@PathVariable("id") int id, Model model) { if (id == 1) { model.addAttribute("item", new Item(1, "First Item")); } else { model.addAttribute("item", new Item(2, "Second Item")); } return "pathvariables/view"; } }

Nel nostro modello index.html , scorriamo i nostri elementi e creiamo collegamenti chiamando il metodo singlePathVariable :

Il codice che abbiamo appena creato crea URL come questo:

//localhost:8080/pathvars/single/1

Questa è la sintassi Thymeleaf standard per l'utilizzo di espressioni negli URL.

Possiamo anche usare la concatenazione per ottenere lo stesso risultato:

3. Utilizzo di più variabili di percorso

Ora che abbiamo coperto le basi della creazione di un URL variabile di percorso in Thymeleaf, esaminiamo rapidamente l'utilizzo di più.

Innanzitutto, creeremo una classe Detail e modificheremo la nostra classe Item per avere un elenco di loro:

public class Detail { private int id; private String description; // constructor and standard getters and setters }

Successivamente, aggiungiamo un elenco di dettaglio alla voce :

private List details;

Ora, aggiorniamo il nostro controller per aggiungere un metodo utilizzando più annotazioni @PathVariable :

@GetMapping("/pathvars/item/{itemId}/detail/{dtlId}") public String multiplePathVariable(@PathVariable("itemId") int itemId, @PathVariable("dtlId") int dtlId, Model model) { for (Item item : items) { if (item.getId() == itemId) { model.addAttribute("item", item); for (Detail detail : item.getDetails()) { if (detail.getId() == dtlId) { model.addAttribute("detail", detail); } } } } return "pathvariables/view"; }

Infine, modifichiamo il nostro modello index.html per creare URL per ogni record di dettaglio:


    

4. Conclusione

In questo breve tutorial, abbiamo imparato come utilizzare Thymeleaf per creare URL con variabili di percorso. Abbiamo iniziato creando un semplice URL con uno solo. Successivamente, abbiamo ampliato il nostro esempio per utilizzare più variabili di percorso.

Il codice di esempio è disponibile su GitHub.