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 1

Bruger 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.