Úvod do používania tymianeafu na jar

1. Úvod

Thymeleaf je šablónový modul Java na spracovanie a vytváranie formátov HTML, XML, JavaScript, CSS a textu.

V tomto článku budeme diskutovať ako používať Thymeleaf s jarom spolu s niektorými základnými prípadmi použitia vo vrstve zobrazenia aplikácie Spring MVC.

Knižnica je mimoriadne rozšíriteľná a jej prirodzené možnosti vytvárania šablón zaisťujú možnosť prototypov šablón bez koncového zariadenia - čo umožňuje rýchly vývoj v porovnaní s inými populárnymi šablónovými nástrojmi, ako je napríklad JSP.

2. Integrácia Thymeleaf s jarou

Najprv si pozrime konfigurácie potrebné na integráciu s Spring. The tymianovy-jar na integráciu je potrebná knižnica.

Pridajte do svojho súboru Maven POM nasledujúce závislosti:

 org.thymeleaf thymeleaf 3.0.11.RELEASE org.thymeleaf thymeleaf-spring5 3.0.11.RELEASE 

Upozorňujeme, že v prípade projektu na jar 4 sa projekt thymeleaf-spring4 namiesto. musí byť použitá knižnica thymeleaf-spring5.

The SpringTemplateEngine trieda vykoná všetky konfiguračné kroky. Túto triedu môžete nakonfigurovať ako fazuľa v konfiguračnom súbore Java:

@Bean @Description ("Thymeleaf Template Resolver") verejné ServletContextTemplateResolver templateResolver () {ServletContextTemplateResolver templateResolver = nový ServletContextTemplateResolver (); templateResolver.setPrefix ("/ WEB-INF / zobrazenia /"); templateResolver.setSuffix (". html"); templateResolver.setTemplateMode ("HTML5"); vrátiť templateResolver; } @Bean @Description ("Thymeleaf Template Engine") verejné SpringTemplateEngine templateEngine () {SpringTemplateEngine templateEngine = nový SpringTemplateEngine (); templateEngine.setTemplateResolver (templateResolver ()); templateEngine.setTemplateEngineMessageSource (messageSource ()); vrátiť templateEngine; }

The templateResolver vlastnosti fazule predpona a prípona uveďte umiestnenie stránok na prezeranie v rámci webapp adresár a prípona ich súboru.

The ViewResolver Rozhranie na jar MVC mapuje názvy zobrazení vrátené radičom na skutočné objekty pohľadu. ThymeleafViewResolver realizuje ViewResolver rozhranie a používa sa na určenie, ktoré Thymeleaf pohľady sa majú vykresliť, a to pod daným názvom pohľadu.

Posledným krokom v integrácii je pridanie súboru ThymeleafViewResolver ako fazuľa:

@Bean @Description ("Thymeleaf View Resolver") verejné ThymeleafViewResolver viewResolver () {ThymeleafViewResolver viewResolver = nový ThymeleafViewResolver (); viewResolver.setTemplateEngine (templateEngine ()); viewResolver.setOrder (1); spať viewResolver; }

3. Thymeleaf v jarnej topánke

Jarná topánka poskytuje automatickú konfiguráciu pre Thymeleaf pridaním spring-boot-starter-thymeleaf závislosť:

 org.springframework.boot spring-boot-starter-thymeleaf 2.3.3.RELEASE 

Nie je potrebná žiadna explicitná konfigurácia. V predvolenom nastavení by mali byť súbory HTML umiestnené v priečinku zdroje / šablóny umiestnenie.

4. Zobrazenie hodnôt zo zdroja správ (súbory vlastností)

The th: text = ”# {key}” Atribút značky možno použiť na zobrazenie hodnôt zo súborov vlastností. Aby to fungovalo, musí byť súbor vlastností nakonfigurovaný ako messageSource fazuľa:

@Bean @Description ("Spring Message Resolver") public ResourceBundleMessageSource messageSource () {ResourceBundleMessageSource messageSource = nový ResourceBundleMessageSource (); messageSource.setBasename ("správy"); návrat messageSource; }

Tu je Thymeleaf HTML kód na zobrazenie hodnoty spojenej s kľúčom vitaj.správa:

5. Zobrazenie atribútov modelu

5.1. Jednoduché atribúty

The th: text = ”$ {attributename}” atribút značky možno použiť na zobrazenie hodnoty atribútov modelu. Pridajme modelový atribút s názvom serverTime v triede ovládačov:

model.addAttribute ("serverTime", dateFormat.format (nový Date ()));

HTML kód na zobrazenie hodnoty serverTime atribút:

Aktuálny čas je 

5.2. Atribúty zbierky

Ak je atribútom modelu kolekcia objektov, znak th: každý na jeho iteráciu je možné použiť atribút značky. Definujme a Študent modelová trieda s dvoma poľami, ida názov:

verejná trieda Študent implementuje Serializable {private Integer id; súkromné ​​meno reťazca; // štandardné getre a setre}

Teraz pridáme zoznam študentov ako atribút modelu do triedy ovládačov:

Zoznam študentov = new ArrayList (); // logika zostavovania studentskych dat modelu.addAttribute ("students", students);

Na záver môžeme pomocou kódu šablóny Thymeleaf iterovať zoznam študentov a zobraziť všetky hodnoty polí:

6. Podmienené hodnotenie

6.1. ak a pokiaľ

The th: if = ”$ {condition}” atribút sa používa na zobrazenie časti pohľadu, ak je podmienka splnená. The th: unless = ”$ {condition}” atribút sa používa na zobrazenie časti pohľadu, ak podmienka nie je splnená.

Pridaj rod pole do Študent Model:

verejná trieda Študent implementuje Serializable {private Integer id; súkromné ​​meno reťazca; rod súkromnej postavy; // štandardné getre a setre}

Predpokladajme, že toto pole má dve možné hodnoty (M alebo F), ktoré označujú pohlavie študenta. Ak by sme chceli namiesto jedného znaku zobraziť slová „muž“ alebo „žena“, mohli by sme to dosiahnuť použitím nasledujúceho Thymeleaf kódu:

6.2. prepínač a prípade

The th: prepínač a th: prípad atribúty sa používajú na podmienené zobrazenie obsahu pomocou štruktúry príkazu switch.

Predchádzajúci kód bolo možné prepísať pomocou th: prepínač a th: prípad atribúty:

7. Zaobchádzanie s užívateľskými vstupmi

Zadávanie formulárov je možné vybaviť pomocou th: action = ”@ {url}” a th: object = ”$ {object}” atribúty. The th: akcia sa používa na zadanie adresy URL akcie formulára a th: objekt sa používa na určenie objektu, na ktorý budú viazané údaje odoslaného formulára. Jednotlivé polia sa mapujú pomocou th: field = ”* {name}” atribút, kde názov je vlastnosť zhody objektu.

Pre Študent triedy, môžeme vytvoriť vstupný formulár:

Vo vyššie uvedenom kóde / saveStudent je adresa URL akcie formulára a študent je objekt, ktorý obsahuje zadané údaje formulára.

The StudentController trieda spracováva odoslanie formulára:

@Controller verejná trieda StudentController {@RequestMapping (value = "/ saveStudent", method = RequestMethod.POST) verejný reťazec saveStudent (študent @ModelAttribute, chyby BindingResult, model modelu) {// logika na spracovanie vstupných údajov}}

V kóde vyššie je @RequestMapping anotácia mapuje metódu ovládača s URL poskytnutým vo formulári. Anotovaná metóda saveStudent () vykoná požadované spracovanie pre odoslaný formulár. The @ModelAttribute anotácia viaže polia formulára na študent objekt.

8. Zobrazenie chýb overenia

The # fields.hasErrors () pomocou funkcie je možné skontrolovať, či má pole nejaké chyby overenia. The # fields.errors () možno použiť na zobrazenie chýb pre konkrétne pole. Názov poľa je vstupným parametrom pre obe tieto funkcie.

HTML kód na iteráciu a zobrazenie chýb pre každé z polí vo formulári:

Namiesto názvu poľa vyššie uvedené funkcie prijímajú zástupný znak * alebo konštanta všetko na označenie všetkých polí. The th: každý atribút sa používa na iteráciu viacerých chýb, ktoré sa môžu vyskytnúť pre každé z polí.

Predchádzajúci kód HTML bol prepísaný pomocou zástupného znaku *:

alebo pomocou konštanty všetko:

Podobne možno globálne chyby na jar zobraziť pomocou globálne konštantný.

HTML kód na zobrazenie globálnych chýb:

The th: chyby možno tiež použiť na zobrazenie chybových správ. Predchádzajúci kód na zobrazovanie chýb vo formulári je možné prepísať pomocou th: chyby atribút:

9. Používanie konverzií

Syntax dvojitej zátvorky {{}} sa používa na formátovanie údajov na zobrazenie. Toto využíva formátovači nakonfigurovaný pre tento typ poľa v conversionService fazuľa kontextového súboru.

Pole pre meno v Študent trieda je naformátovaná:

Vyššie uvedený kód používa NameFormatter triedy, nakonfigurovaný prepísaním addFormatters () metóda z WebMvcConfigurer rozhranie. Z tohto dôvodu naše @ Konfigurácia trieda prepíše WebMvcConfigurerAdapter trieda:

@Configuration verejná trieda WebMVCConfig rozširuje WebMvcConfigurerAdapter {// ... @Override @Description ("služba vlastnej konverzie") public void addFormatters (register FormatterRegistry) {registry.addFormatter (nový NameFormatter ()); }}

The NameFormatter trieda realizuje Jar Formátovač rozhranie.

The #conversions možno tiež použiť na prevod objektov na zobrazenie. Syntax pre užitočnú funkciu je # conversions.convert (objekt, trieda) kde Objekt sa prevádza na Trieda typu.

Zobraziť študent objekt percentuálny podiel pole s odstránenou zlomkovou časťou:

10. Záver

V tomto tutoriáli sme videli, ako integrovať a používať Thymeleaf v jarnej aplikácii MVC.

Videli sme tiež príklady toho, ako zobraziť polia, prijať vstup, zobraziť chyby overenia a prevádzať údaje na zobrazenie. Pracovná verzia kódu zobrazeného v tomto článku je k dispozícii v úložisku GitHub.


$config[zx-auto] not found$config[zx-overlay] not found