Spring Path Variables med Thymeleaf

1. Introduktion

I denne korte vejledning lærer vi, hvordan du bruger Thymeleaf til at oprette URL'er ved hjælp af Spring-sti-variabler.

Vi bruger stavariabler, når vi vil overføre en værdi som en del af URL'en. I en Spring-controller får vi adgang til disse værdier ved hjælp af @PathVariable kommentar.

2. Brug af stivariabler

Lad os først oprette vores eksempel ved at oprette en simpel Vare klasse:

public class Item {private int id; privat strengnavn; // Constructor og standard getters og setters}

Lad os nu oprette vores controller:

@Controller public class PathVariablesController {@GetMapping ("/ pathvars") public String start (Model model) {List items = new ArrayList (); items.add (nyt emne (1, "første emne")); items.add (nyt emne (2, "andet emne")); model.addAttribute ("items", items); returner "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")); } andet {model.addAttribute ("item", nyt element (2, "Second Item")); } returner "pathvariables / view"; }}

I vores index.html skabelon, lad os gennemgå vores varer og oprette links, der kalder singlePathVariable metode:

Koden, vi lige har oprettet, gør webadresser som denne:

// localhost: 8080 / pathvars / single / 1

Dette er standard Thymeleaf-syntaks til brug af udtryk i URL'er.

Vi kan også bruge sammenkædning for at opnå det samme resultat:

3. Brug af flere sti-variabler

Nu hvor vi har dækket det grundlæggende ved at oprette en sti-variabel URL i Thymeleaf, lad os hurtigt dække ved hjælp af flere.

Først opretter vi en Detalje klasse og ændre vores Vare klasse for at have en liste over dem:

offentlig klasse Detalje {privat int id; privat streng beskrivelse; // konstruktør og standard getters og setters}

Lad os derefter tilføje en liste over Detalje til Vare:

private listeoplysninger;

Lad os nu opdatere vores controller for at tilføje en metode ved hjælp af flere @PathVariable kommentarer:

@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 (Detalje detalje: item.getDetails ()) {if (detail.getId () == dtlId) {model.addAttribute ("detalje", detalje); }}}} returner "pathvariables / view"; }

Lad os endelig ændre vores index.html skabelon til at oprette URL'er til hver detaljeoptegnelse:

4. Konklusion

I denne hurtige vejledning lærte vi, hvordan man bruger Thymeleaf til at oprette URL'er med stavariabler. Vi startede med at oprette en simpel URL med kun en. Senere udvidede vi vores eksempel til at bruge flere stavariabler.

Eksempelkoden er tilgængelig på GitHub.


$config[zx-auto] not found$config[zx-overlay] not found