Spring Path Variables with Thymeleaf

1. Introduksjon

I denne korte opplæringen skal vi lære hvordan du bruker Thymeleaf til å lage URL-er ved hjelp av Spring-sti-variabler.

Vi bruker banevariabler når vi vil overføre en verdi som en del av URL-en. I en vårkontroller får vi tilgang til disse verdiene ved hjelp av @PathVariable kommentar.

2. Bruke banevariabler

La oss først sette opp eksemplet vårt ved å lage et enkelt Punkt klasse:

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

La oss nå opprette kontrolleren vår:

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

I vår index.html mal, la oss gå gjennom elementene våre og lage lenker som kaller singlePathVariable metode:

Koden vi nettopp opprettet, gjør nettadresser som dette:

// localhost: 8080 / pathvars / single / 1

Dette er standard Thymeleaf-syntaks for bruk av uttrykk i URL-er.

Vi kan også bruke sammenkobling for å oppnå samme resultat:

3. Bruke flere banevariabler

Nå som vi har dekket det grunnleggende om å lage en sti-variabel URL i Thymeleaf, la oss raskt dekke ved hjelp av flere.

Først oppretter vi en Detalj klasse og endre vår Punkt klasse for å ha en liste over dem:

offentlig klasse Detalj {privat int id; privat strengbeskrivelse; // constructor and standard getters and setters}

La oss deretter legge til en liste over Detalj til Punkt:

private Liste detaljer;

La oss nå oppdatere kontrolleren vår for å legge til en metode som bruker flere @PathVariable kommentarer:

@GetMapping ("/ pathvars / item / {itemId} / detail / {dtlId}") public String multiplePathVariable (@PathVariable ("itemId") int itemId, @PathVariable ("dtlId") int dtlId, Model model) {for ( Elementvare: varer) {if (item.getId () == itemId) {model.addAttribute ("item", item); for (Detaljdetaljer: item.getDetails ()) {if (detail.getId () == dtlId) {model.addAttribute ("detalj", detalj); }}}} returner "pathvariables / view"; }

Til slutt, la oss endre vår index.html mal for å lage nettadresser for hver detaljoppføring:

4. Konklusjon

I denne raske opplæringen lærte vi hvordan du bruker Thymeleaf til å lage URL-er med stavariabler. Vi startet med å lage en enkel URL med bare en. Senere utvidet vi eksemplet vårt til å bruke flere banevariabler.

Eksempelkoden er tilgjengelig på GitHub.


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