Útmutató a bajuszhoz a tavaszi csomagtartóval
1. Áttekintés
Ebben a cikkben a Bajusz sablonok használatára összpontosítunk a HTML tartalom előállításához a Spring Boot alkalmazásokban.
Ez egy logika nélküli sablonmotor a dinamikus tartalom létrehozásához, amely egyszerűsége miatt népszerű.
Ha meg akarja fedezni az alapokat, olvassa el a Bajusz cikk bevezetését.
2. Maven-függőség
Ahhoz, hogy a Bajuszt a Spring Boot-tal együtt használhassuk, hozzá kell adnunk a dedikált Spring Boot indítót a programunkhoz pom.xml:
org.springframework.boot spring-boot-starter-bajusz org.springframework.boot spring-boot-starter-web
Ezenkívül szükségünk van a tavasz-indítás-indító-web függőségre.
3. Sablonok létrehozása
Mutassunk egy példát, és hozzunk létre egy egyszerű MVC alkalmazást a Spring-Boot segítségével, amely cikkeket fog szolgálni egy weboldalon.
Írjuk meg az első sablont a cikk tartalmához:
{{#cikkek}} {{publishDate}}
{{szerző}}
{{test}}
{{/ articles}}
Mondjuk elmentjük ezt a HTML fájlt cikk.html, aés utalja a mi index.html:
{{> elrendezés / cikk}}
Itt a elrendezés egy alkönyvtár, és a cikk a sablon fájl neve.
Ne feledje, hogy az alapértelmezett bajusz sablon fájlkiterjesztés most van.bajusz. Ezt a konfigurációt felülírhatjuk egy tulajdonsággal:
tavasz.mustache.suffix: .html
4. Vezérlő
Most írjuk meg a cikkek kiszolgálójának vezérlőjét:
@GetMapping ("/ article") public ModelAndView displayArticle (Térkép modell) {Cikkek listája = IntStream.range (0, 10) .mapToObj (i -> generatorArticle ("Cikk címe" + i)) .collect (Collectors.toList ( )); model.put ("cikkek", cikkek); return new ModelAndView ("index", modell); }
A vezérlő visszaküldi az oldalon megjelenítendő cikkek listáját. A cikk sablonban a címkét cikkeket # -től kezdődően és / -ig végzi a listát.
Ez ismétli az átadott modellt, és minden elemet külön-külön renderel, akárcsak egy HTML-táblázat:
{{# #cikkek}} ... {{/ articles}}
A generál cikk () módszer létrehoz egy Cikk például néhány véletlenszerű adattal.
Ne feledje, hogy a cikkmodell kulcsainak, amelyeket a vezérlő visszaad, meg kell egyezniük a kulcsokkal cikk sabloncímkék.
Most teszteljük az alkalmazást:
@Test public void givenIndexPage_whenContainsArticle_thenTrue () {ResponseEntity entitás = this.restTemplate.getForEntity ("/ article", String.class); assertTrue (entitás.getStatusCode () .egyenlő (HttpStatus.OK)); assertTrue (entitás.getBody () .contains ("Cikk 0. címe")); }
Tesztelhetjük az alkalmazást a következők telepítésével is:
mvn spring-boot: fut
Miután bevetjük, üthetünk localhost: 8080 / cikk, és felsoroljuk cikkjeinket:
5. Alapértelmezett értékek kezelése
Bajusz környezetben, ha nem adunk meg értéket egy helyőrzőnek, akkor a MustacheException üzenettel dobják „Nincs metódus vagy mező névvel” változó-név… ”.
Az ilyen hibák elkerülése érdekében jobb, ha alapértelmezett globális értéket ad meg az összes helyőrzőnek:
@Bean public Mustache.Compiler mustacheCompiler (Mustache.TemplateLoader templateLoader, Környezeti környezet) {MustacheEnvironmentCollector collector = új MustacheEnvironmentCollector (); gyűjtő.setKörnyezet (környezet); adja vissza a Mustache.compiler () .defaultValue ("Néhány alapértelmezett érték") .WithLoader (templateLoader) .withCollector (gyűjtő); }
6. Bajusz tavaszi MVC-vel
Most beszéljük meg, hogyan lehet integrálni a Spring MVC-t, ha úgy döntünk, hogy nem használjuk a Spring Boot-ot. Először tegyük hozzá a függőséget:
com.github.sps.mustache bajache-spring-view 1.4
A legújabb itt található.
Ezután konfigurálnunk kell MustacheViewResolver tavaszi helyett InternalResourceViewResolver:
@Bean public ViewResolver getViewResolver (ResourceLoader resourceLoader) {MustacheViewResolver mustacheViewResolver = új MustacheViewResolver (); mustacheViewResolver.setPrefix ("/ WEB-INF / nézetek /"); mustacheViewResolver.setSuffix (".. bajusz"); mustacheViewResolver.setCache (hamis); MustacheTemplateLoader mustacheTemplateLoader = új MustacheTemplateLoader (); mustacheTemplateLoader.setResourceLoader (resourceLoader); mustacheViewResolver.setTemplateLoader (bajuszTemplateLoader); return bajacheViewResolver; }
Csak konfigurálnunk kell a utótag, ahol a sablonjaink vannak tárolva, előtag a sablonjaink kiterjesztése és a templateLoader, amely felelős lesz a sablonok betöltéséért.
7. Következtetés
Ebben a gyors bemutatóban megvizsgáltuk a Bajusz sablonok használatát a Spring Boot alkalmazással, az elemek gyűjteményének megjelenítését a felhasználói felületen, valamint a változók alapértelmezett értékeinek megadását a hibák elkerülése érdekében.
Végül megvitattuk, hogyan lehet integrálni a Spring alkalmazásával MustacheViewResolver.
Mint mindig, a forráskód elérhető a GitHubon.