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ítsen Modell $ {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.