Vårforespørselparametere med Thymeleaf

1. Introduksjon

I vår artikkel Introduksjon til bruk av Thymeleaf om våren så vi hvordan vi kan binde brukerinngang til objekter.

Vi brukte th: objekt og th: felt i Thymeleaf-malen og @ModelAttribute i kontrolleren for å binde data til et Java-objekt. I denne artikkelen vil vi se på hvordan du bruker vårkommentar @RequestParam i kombinasjon med Thymeleaf.

2. Parametere i skjemaer

La oss først lage en enkel kontroller som godtar fire valgfrie forespørselsparametere:

@Controller public class MainController {@RequestMapping ("/") public String index (@RequestParam (value = "participant", required = false) Strengdeltaker, @RequestParam (value = "country", required = false) Strengland, @ RequestParam (value = "action", required = false) Strenghandling, @RequestParam (value = "id", required = false) Heltall-id, modellmodell) {model.addAttribute ("id", id); Liste userIds = asList (1,2,3,4); model.addAttribute ("userIds", userIds); returner "indeks"; }}

Navnet på Thymeleaf-malen er index.html. I de følgende tre avsnittene bruker vi forskjellige HTML-skjemaelementer for brukeren til å overføre data til kontrolleren.

2.1. Inngangselement

La oss først lage et enkelt skjema med et tekstinntastingsfelt og en knapp for å sende inn skjemaet:

Attributtet th: name = ”deltaker” binder verdien av inndatafeltet til parameteren deltager av kontrolleren. For at dette skal fungere, må vi kommentere parameteren med @RequestParam (verdi = “deltaker”).

2.2. Velg Element

Likeledes for HTML-valgelementet:

   Tyskland Nederland Polen Latvia 

Verdien til det valgte alternativet er bundet til parameteren land, kommentert med @RequestParam (verdi = “land”).

2.3. Knappelement

Et annet element der vi kan bruke th: navn er knappelementet:

 sjekke inn sjekke ut 

Avhengig av om den første eller andre knappen trykkes for å sende inn skjemaet, verdien av parameteren handling blir det heller innsjekking eller Sjekk ut.

3. Parametere i hyperkoblinger

En annen måte å overføre forespørselsparametere til en kontroller er via en hyperkobling:

Og vi kan legge til parametere i parentes:

Thymeleaf vurderer det ovennevnte for å:

Å bruke Thymeleaf-uttrykk for å generere hyperkoblinger er spesielt nyttig hvis vi vil tildele parameterverdier basert på variabler. La oss for eksempel generere en hyperkobling for hver bruker-ID:

  Bruker [[$ {userId}]]

Vi kan sende en liste over bruker-IDer som en egenskap til malen:

Liste userIds = asList (1,2,3); model.addAttribute ("userIds", userIds);

Og den resulterende HTML-en vil være:

 Bruker 1

Bruker 2

Bruker 3

Parameteren id i hyperkoblingen er bundet til parameteren id, kommentert med @RequestParam (verdi = “id”).

4. Oppsummering

I denne korte artikkelen så vi hvordan du bruker vårforespørselsparametere i kombinasjon med Thymeleaf.

Først opprettet vi en enkel kontroller som godtar forespørselsparametere. For det andre så vi på hvordan du bruker Thymeleaf til å generere en HTML-side som kan ringe kontrolleren vår.

Den fullstendige kildekoden for alle eksemplene i denne artikkelen finner du på GitHub.