Fjederanmodningsparametre med Thymeleaf
1. Introduktion
I vores artikel Introduktion til brug af Thymeleaf om foråret så vi, hvordan man binder brugerindgang til objekter.
Vi brugte th: objekt og th: felt i Thymeleaf-skabelonen og @ModelAttribute i controlleren for at binde data til et Java-objekt. I denne artikel vil vi se på, hvordan du bruger Spring-kommentaren @RequestParam i kombination med Thymeleaf.
2. Parametre i formularer
Lad os først oprette en simpel controller, der accepterer fire valgfri anmodningsparametre:
@Controller public class MainController {@RequestMapping ("/") public String index (@RequestParam (value = "participant", required = false) Strengdeltager, @RequestParam (value = "country", required = false) Strengland, @ RequestParam (værdi = "handling", krævet = falsk) Strenghandling, @RequestParam (værdi = "id", krævet = falsk) Heltals-id, modelmodel) {model.addAttribute ("id", id); Liste userIds = asList (1,2,3,4); model.addAttribute ("userIds", userIds); returner "indeks"; }}
Navnet på vores Thymeleaf-skabelon er index.html. I de følgende tre sektioner bruger vi forskellige HTML-formularelementer til brugeren til at videregive data til controlleren.
2.1. Inputelement
Lad os først oprette en simpel formular med et tekstinputfelt og en knap til at indsende formularen:
Attributten th: name = ”deltager” binder værdien af inputfeltet til parameteren deltager af controlleren. For at dette skal fungere, skal vi kommentere parameteren med @RequestParam (værdi = “deltager”).
2.2. Vælg element
Ligeledes for HTML-valgelementet:
Tyskland Nederlandene Polen Letland
Værdien af den valgte indstilling er bundet til parameteren Land, kommenteret med @RequestParam (værdi = “land”).
2.3. Knapelement
Et andet element, hvor vi kan bruge th: navn er knapelementet:
check ind Check ud
Afhængigt af om der trykkes på den første eller anden knap for at sende formularen, er parameterens værdi handling vil være enten check-in eller check-out.
3. Parametre i hyperlinks
En anden måde at overføre anmodningsparametre til en controller er via et hyperlink:
Og vi kan tilføje parametre i parentes:
Thymeleaf vurderer ovenstående til:
Brug af Thymeleaf-udtryk til generering af hyperlinks er især nyttigt, hvis vi vil tildele parameterværdier baseret på variabler. Lad os f.eks. Generere et hyperlink til hvert bruger-id:
Bruger [[$ {userId}]]
Vi kan videregive en liste over bruger-id'er som en egenskab til skabelonen:
Liste userIds = asList (1,2,3); model.addAttribute ("userIds", userIds);
Og den resulterende HTML vil være:
Bruger 1Bruger 2
Bruger 3
Parameteren id i hyperlinket er bundet til parameteren id, kommenteret med @RequestParam (værdi = “id”).
4. Resume
I denne korte artikel så vi, hvordan vi bruger forespørgselsparametre i kombination med Thymeleaf.
Først oprettede vi en simpel controller, der accepterer anmodningsparametre. For det andet så vi på, hvordan vi bruger Thymeleaf til at generere en HTML-side, der kan ringe til vores controller.
Den fulde kildekode til alle eksempler i denne artikel kan findes på GitHub.