Bevezetés a FreeMarker tavaszi MVC használatába

1. Áttekintés

FreeMarker egy Java alapú sablonmotor az Apache Software Foundation-től. A többi sablonmotorhoz hasonlóan a FreeMarkert is úgy tervezték, hogy támogassa a HTML weboldalakat az MVC mintát követő alkalmazásokban. Ez az oktatóanyag bemutatja, hogyan kell konfigurálja a FreeMarkert a Spring MVC használatához a JSP alternatívájaként.

A cikk nem tárgyalja a tavaszi MVC használatának alapjait. Ennek részletesebb áttekintéséhez olvassa el ezt a cikket. Ezenkívül ez nem célja a FreeMarker átfogó képességeinek részletes áttekintése. A FreeMarker használatával és szintaxisával kapcsolatos további információkért keresse fel a weboldalát.

2. Maven-függőségek

Mivel ez egy Maven-alapú projekt, először hozzáadjuk a szükséges függőségeket a pom.xml:

 org.freemarker freemarker 2.3.23 org.springframework spring-context-support $ {spring.version} 

3. Konfigurációk

Most merüljünk el a projekt konfigurációjában. Ez egy annotáció-alapú Spring projekt, ezért nem mutatjuk be az XML-alapú konfigurációt.

3.1. Tavaszi webkonfiguráció

Hozzunk létre egy osztályt a web-összetevők konfigurálásához. Ehhez meg kell jegyeznünk az osztályt @EnableWebMvc, @ Konfiguráció és @ComponentScan.

@EnableWebMvc @Configuration @ComponentScan ({"com.baeldung.freemarker"}) nyilvános osztály A SpringWebConfig kiterjeszti a WebMvcConfigurerAdapter {// Minden webkonfiguráció ide kerül. }

3.2. Beállítás ViewResolver

A tavaszi MVC Framework biztosítja a ViewResolverfelület, amely leképezi a nézetek nevét a tényleges nézetekre. Létrehozunk egy példányt FreeMarkerViewResolver, amely tartozik tavasz-webmvc függőség.

Az objektumot konfigurálni kell a futás közben használt szükséges értékekkel. Például úgy konfiguráljuk a nézetmegoldót, hogy a FreeMarkert használja a végződésű nézetekre .ftl:

@Bean public FreeMarkerViewResolver freemarkerViewResolver () {FreeMarkerViewResolver resolver = new FreeMarkerViewResolver (); resolver.setCache (true); resolver.setPrefix (""); resolver.setSuffix (". ftl"); return resolver; }

Figyelje meg azt is, hogy miként vezérelhetjük itt a gyorsítótár üzemmódot is - ezt csak hibakeresés és fejlesztés céljából szabad letiltani.

3.3. FreeMarker sablon elérési útja

Ezután beállítjuk a sablon elérési útját, amely jelzi a sablonok helyét a webes környezetben:

@Bean public FreeMarkerConfigurer freemarkerConfig () {FreeMarkerConfigurer freeMarkerConfigurer = új FreeMarkerConfigurer (); freeMarkerConfigurer.setTemplateLoaderPath ("/ WEB-INF / nézetek / ftl /"); visszatérés freeMarkerConfigurer; }

3.4. Tavaszi vezérlő konfigurációja

Most használhatunk egy rugós vezérlőt feldolgozzon egy FreeMarker sablont a megjelenítéshez. Ez egyszerűen egy hagyományos rugós vezérlő:

@RequestMapping (value = "/ cars", method = RequestMethod.GET) public String init (@ModelAttribute ("model") ModelMap model) {model.addAttribute ("carList", carList); return "index"; }

A FreeMarkerViewResolver és a korábban definiált útvonal-konfigurációk gondoskodnak a nézet nevének fordításáról index a megfelelő FreeMarker nézethez.

4. FreeMarker HTML sablon

4.1. Hozzon létre egyszerű HTML sablon nézetet

Itt az ideje egy HTML sablon a FreeMarkerrel. Példánkban hozzáadtuk a modellhez az autók listáját. A FreeMarker hozzáférhet ehhez a listához és megjelenítheti azt a tartalma iterálásával.

Amikor kérelmet nyújtanak be a / autók URI, Spring a sablont a megadott modell alapján dolgozza fel. Sablonunkban a #lista irányelv azt jelzi, hogy a FreeMarkernek át kell hurkolnia a carList objektum a modellből, a autó hivatkozni az aktuális elemre és megjeleníteni a tartalmat abban a blokkban.

A következő kód is tartalmazza FreeMarker kifejezések hivatkozni az egyes elemek attribútumaira a carList; vagy például az aktuális autóelemek megjelenítéséhez készítsen tulajdonság, használjuk a kifejezést $ {car.make}.

FreeMarker tavaszi MVC Hello World

Autó gyártmány hozzáadása:

Modell:

KészítsenModell
$ {car.make}$ {car.model}

A kimenet CSS-sel történő stilizálása után a feldolgozott FreeMarker sablon létrehoz egy űrlapot és autók listáját:

5. Tavaszi csizma

Ha a Spring Boot programot használjuk, akkor egyszerűen importálhatjuk a fájlt tavaszi-csomagtartó-indító-szabadjelző függőség:

 org.springframework.boot spring-boot-starter-freemarker 2.3.4.KÖZLEMÉNY 

Ezután egyszerűen hozzá kell adnunk a sablonfájljainkat src / main / resources / templates. A Spring Boot felelős az alapértelmezett konfigurációkért, mint például FreeMarkerConfigurer és FreeMarkerViewResolver.

6. Következtetés

Ebben a cikkben megvitattuk az integráció módját FreeMarker egy tavaszi MVC alkalmazásban. A FreeMarker képességei messze túlmutatnak azon, amit bemutattunk, ezért kérjük, látogasson el az Apache FreeMarker webhelyére, ahol részletesebb információkat találhat a használatáról.

Az ebben a cikkben szereplő mintakód a Github egyik projektjében érhető el.