Thymeleaf: Egyedi elrendezéses dialektus

1. Bemutatkozás

A Thymeleaf egy Java sablonmotor HTML, XML, JavaScript, CSS és egyszerű szöveg feldolgozásához és létrehozásához. A Thymeleaf and Spring bevezetőjéhez olvassa el ezt az írást.

Ebben az írásban a sablonokra összpontosítunk - erre az ésszerűbb összetettségű webhelyeknek így vagy úgy kell eljárniuk. Egyszerűen fogalmazva: az oldalaknak meg kell osztaniuk a közös oldalelemeket, például a fejlécet, a láblécet, a menüt és potenciálisan még sok minden mást.

A Thymeleaf egyedi dialektusokkal címzi meg az elrendezéseket - a Thymeleaf standard elrendezési rendszer vagy a Elrendezés nyelvjárás - amely a dekoratormintát használja az elrendezési fájlokkal való munkához.

Ebben a cikkben megvizsgáljuk a Thymeleaf elrendezés dialektus - amely itt található. Pontosabban: megvitatjuk a funkcióit, például az elrendezések létrehozását, az egyéni címek létrehozását vagy a fejelemek egyesítését.

2. Maven-függőségek

Először nézzük meg a Thymeleaf és a Spring integrálásához szükséges konfigurációt. A tűlevelű-tavaszi könyvtárra van szükség a függőségeinkben:

 org.thymeleaf thymeleaf 3.0.11.KÖZLEMÉNY org. thymeleaf thymeleaf-spring5 3.0.11. 

Vegye figyelembe, hogy egy 4. tavaszi projekt esetében a tűlevelű-tavasz4 könyvtár helyett kell használni kakukkfű-tavasz5. A függőségek legújabb verziója itt található.

Szükségünk lesz egy függőségre az egyéni elrendezés dialektusához is:

 nz.net.ultraq.thymeleaf thymeleaf-layout-dialektus 2.4.1 

A legújabb verzió megtalálható a Maven központi adattárában.

3. Thymeleaf Layout Dialect konfiguráció

Ebben a részben megvitatjuk a Thymeleaf használatának konfigurálását Elrendezés nyelvjárás. Ha szeretne visszalépni és megismerni a Thymeleaf 3.0 konfigurálását a webalkalmazás-projektben, ellenőrizze ezt az oktatóanyagot.

Miután hozzáadtuk a Maven-függőséget egy projekt részeként, hozzá kell adnunk a Elrendezés nyelvjárás a meglévő Thymeleaf sablonmotorunkhoz. Java konfigurációval tehetjük meg:

SpringTemplateEngine motor = új SpringTemplateEngine (); engine.addDialect (új LayoutDialect ());

Vagy az XML fájl konfigurációjának használatával:

A tartalmi és elrendezési sablonok szakaszainak díszítésekor az alapértelmezett viselkedés az összes tartalmi elem elhelyezése az elrendezés után.

Néha szükségünk van az elemek intelligensebb összevonására, lehetővé téve a hasonló elemek csoportosítását (js szkriptek, stíluslapok stb.).

Ennek eléréséhez rendezési stratégiát kell hozzáadnunk a konfigurációnkhoz - esetünkben ez lesz a csoportosítási stratégia:

engine.addDialect (új LayoutDialect (új GroupingStrategy ()));

vagy XML-ben:

Az alapértelmezett stratégia az elemek hozzáfűzése. A fentiekkel mindent rendezni és csoportosítani fogunk.

Ha egyik stratégia sem felel meg az igényeinknek, megvalósíthatjuk a sajátunkat RendezésStrategy és átadja a fentiekhez hasonlóan a dialektusnak.

4. A névtér és az attribútum processzorok jellemzői

Miután konfiguráltuk, elkezdhetjük használni elrendezés névtér és öt új attribútum-processzor: díszít, cím-minta, betét, cserélje ki, és töredék.

A HTML fájljainkhoz használni kívánt elrendezési sablon létrehozása érdekében létrehoztuk a következő nevű fájlt template.html:

  ... 

Mint láthatjuk, megváltoztattuk a névteret a szabványhoz képest xmlns: th = ”// www.thymeleaf.org” nak nek xmlns: layout = ”// www.ultraq.net.nz/thymeleaf/layout”.

Most elkezdhetjük a munkát HTML-fájljaink attribútum-feldolgozóival.

4.1. elrendezés: töredék

Annak érdekében, hogy egyedi szakaszokat hozzunk létre az elrendezésünkben, vagy újrafelhasználható sablonokat hozzunk létre, amelyek helyettesíthetők azonos nevű szakaszokkal, akkor töredék tulajdonság bennünk template.html test:

Az oldal tartalma ide kerül

Saját lábléc

Az egyéni lábléc itt

Figyelje meg, hogy két szakasz van, amelyeket az egyéni HTML-ek helyettesítenek - a tartalom és a lábléc.

Fontos megírni az alapértelmezett HTML-t is, amelyet használni fog, ha a töredékek egyike sem található.

4.2. elrendezés: díszít

A következő lépés, amelyet meg kell tennünk, egy HTML fájl létrehozása, amelyet az elrendezésünk díszít:

   Elrendezéses nyelvjárási példa 

Ez egy egyedi tartalom, amelyet megadhat

Ez a lábléc tartalma, amelyet meg lehet változtatni

Amint a 3. sorban látható, használjuk elrendezés: díszít és adja meg a dekoratőr forrását. Az elrendezési fájl minden olyan töredékét, amely egyezik a tartalomfájl töredékeivel, lecseréli annak egyedi megvalósítása.

4.3. elrendezés: cím-minta

Tekintettel arra, hogy a Elrendezés nyelvjárás automatikusan felülírja az elrendezés címét a tartalmi sablonban találhatóval, megőrizheti az elrendezésben található cím egyes részeit.

Például létrehozhatunk morzsákat vagy megtarthatjuk a weboldal nevét az oldal címében. A elrendezés: cím-minta processzor segítséget nyújt ilyen esetben. Az elrendezési fájlban csak annyit kell megadnia:

Baeldung

Tehát az előző bekezdésben bemutatott elrendezés és tartalom fájl végeredménye így fog kinézni:

Baeldung - Elrendezéses nyelvjárási példa

4.4. elrendezés: beillesztés / elrendezés: csere

Az első processzor, elrendezés: beillesztés, hasonló a Thymeleaf eredetihez th: betét, de lehetővé teszi a teljes HTML-töredékek továbbítását a beillesztett sablonba. Nagyon hasznos, ha van olyan HTML-je, amelyet újra fel akar használni, de amelynek tartalma túl bonyolult ahhoz, hogy csak kontextusváltozókkal meghatározhassa vagy felépíthesse.

A második, elrendezés: csere, hasonló az elsőhöz, de a th: cserélje ki, amely valójában a gazdagép címkét helyettesíti a definiált töredék kódjával.

5. Következtetés

Ebben a cikkben néhány módszert ismertettünk a Thymeleaf elrendezésében.

Vegye figyelembe, hogy a példák a Thymeleaf 3.0 verziót használják; ha meg akarja tanulni a projekt áttelepítését, kövesse ezt az eljárást.

Az oktatóanyag teljes megvalósítása megtalálható a GitHub projektben.

Hogyan kell tesztelni? Javaslatunk, hogy először böngészővel játsszon, majd ellenőrizze a meglévő JUnit teszteket is.

Ne feledje, hogy a fentiek segítségével elrendezéseket készíthet Elrendezés nyelvjárás vagy könnyedén létrehozhat saját megoldást. Remélhetőleg ez a cikk további betekintést nyújt a témába, és az igényeitől függően megtalálja a preferált megközelítést.