Premenné jarnej cesty s Thymeleaf
1. Úvod
V tomto krátkom tutoriáli sa naučíme, ako používať Thymeleaf na vytváranie adries URL pomocou premenných cesty Spring.
Premenné cesty používame, keď chceme odovzdať hodnotu ako súčasť adresy URL. V pružinovom ovládači k týmto hodnotám pristupujeme pomocou @PathVariable anotácia.
2. Používanie premenných cesty
Najprv si vytvoríme jednoduchý príklad Položka trieda:
verejná trieda Položka {private int id; súkromné meno reťazca; // Konštruktor a štandardné getre a setre}
Teraz vytvorme náš radič:
@Controller public class PathVariablesController {@GetMapping ("/ pathvars") public String start (model model) {List items = new ArrayList (); items.add (nová položka (1, „prvá položka“)); items.add (nová položka (2, „druhá položka“)); model.addAttribute ("položky", položky); návrat "premenné cesty / index"; } @GetMapping ("/ pathvars / single / {id}") public String singlePathVariable (@PathVariable ("id") int id, Model model) {if (id == 1) {model.addAttribute ("item", new Položka (1, „prvá položka“)); } else {model.addAttribute ("položka", nová položka (2, "druhá položka")); } návrat "pathvariables / view"; }}
V našom index.html šablónu, prezerajme si naše položky a vytvorme odkazy volajúce singlePathVariable metóda:
Kód, ktorý sme práve vytvorili, vytvára nasledujúce adresy URL:
// localhost: 8080 / pathvars / single / 1
Toto je štandardná Thymeleafova syntax na použitie výrazov v adresách URL.
Na dosiahnutie rovnakého výsledku môžeme tiež použiť zreťazenie:
3. Používanie viacerých premenných cesty
Teraz, keď sme prebrali základy vytvárania adresy URL premennej cesty v Thymeleaf, poďme rýchlo pokryť použitie viacerých.
Najskôr vytvoríme a Detail triedy a upraviť naše Položka triedy a mať ich zoznam:
public class Detail {private int id; popis súkromného reťazca; // konštruktor a štandardné getre a setre}
Ďalej pridáme zoznam Detail do Položka:
podrobnosti súkromného zoznamu;
Teraz aktualizujme náš radič a pridajme metódu pomocou viacerých @PathVariable anotácie:
@GetMapping ("/ pathvars / item / {itemId} / detail / {dtlId}") public String multiplePathVariable (@PathVariable ("itemId") int itemId, @PathVariable ("dtlId") int dtlId, modelový model) {pre ( Položka item: items) {if (item.getId () == itemId) {model.addAttribute ("item", item); pre (Detail detail: item.getDetails ()) {if (detail.getId () == dtlId) {model.addAttribute ("detail", detail); }}}} return "pathvariables / view"; }
Nakoniec si upravme našu index.html šablóna na vytvorenie adries URL pre každý podrobný záznam:
4. Záver
V tomto rýchlom výučbe sme sa naučili, ako používať Thymeleaf na vytváranie adries URL s premennými cesty. Začali sme vytvorením jednoduchej adresy URL iba s jednou. Neskôr sme na našom príklade rozšírili použitie viacerých premenných cesty.
Vzorový kód je k dispozícii na serveri GitHub.