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 1Bruker 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.