Úvod do používania FreeMarkeru na jar MVC

1. Prehľad

FreeMarker je šablónový stroj založený na prostredí Java od Apache Software Foundation. Rovnako ako ostatné šablónové stroje, aj FreeMarker je navrhnutý tak, aby podporoval webové stránky HTML v aplikáciách podľa vzoru MVC. Tento návod ukazuje, ako na to nakonfigurovať FreeMarker na použitie na jar MVC ako alternatíva k JSP.

Tento článok nebude pojednávať o základoch jarného používania MVC. Podrobné informácie nájdete v tomto článku. Ďalej to nemá byť podrobným pohľadom na rozsiahle možnosti FreeMarkeru. Viac informácií o použití a syntaxi nástroja FreeMarker nájdete na jeho webových stránkach.

2. Maven závislosti

Pretože sa jedná o projekt založený na Maven, pridáme najskôr požadované závislosti do pom.xml:

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

3. Konfigurácie

Teraz sa ponoríme do konfigurácie projektu. Toto je jarný projekt založený na anotáciách, takže nebudeme demonštrovať konfiguráciu založenú na XML.

3.1. Jarná konfigurácia webu

Vytvorme triedu na konfiguráciu webových komponentov. Na to musíme triedu anotovať @EnableWebMvc, @ Konfigurácia a @ComponentScan.

@EnableWebMvc @Configuration @ComponentScan ({"com.baeldung.freemarker"}), verejná trieda SpringWebConfig rozširuje WebMvcConfigurerAdapter {// Celá konfigurácia webu sa zobrazí tu. }

3.2. Konfigurovať ViewResolver

Jarný rámec MVC poskytuje ViewResolverrozhranie, ktoré mapuje názvy pohľadov na skutočné pohľady. Vytvoríme inštanciu FreeMarkerViewResolver, ktorý patrí do jar-webmvc závislosť.

Tento objekt je potrebné nakonfigurovať s požadovanými hodnotami, ktoré sa použijú za behu. Napríklad nakonfigurujeme prekladač pohľadov tak, aby používal FreeMarker pre zobrazenia končiace na .ftl:

@Bean public FreeMarkerViewResolver freemarkerViewResolver () {FreeMarkerViewResolver resolver = nový FreeMarkerViewResolver (); resolver.setCache (true); resolver.setPrefix (""); resolver.setSuffix (". ftl"); spätný rezolver; }

Všimnite si tiež, ako tu môžeme ovládať aj režim ukladania do pamäte cache - toto by malo byť zakázané iba pre ladenie a vývoj.

3.3. Konfigurácia cesty šablóny FreeMarker

Ďalej nastavíme cestu šablóny, ktorá označuje, kde sa šablóny nachádzajú vo webovom kontexte:

@Bean public FreeMarkerConfigurer freemarkerConfig () {FreeMarkerConfigurer freeMarkerConfigurer = nový FreeMarkerConfigurer (); freeMarkerConfigurer.setTemplateLoaderPath ("/ WEB-INF / views / ftl /"); vrátiť freeMarkerConfigurer; }

3.4. Konfigurácia pružinového ovládača

Teraz môžeme použiť Spring Controller na spracovať šablónu FreeMarker na zobrazenie. Toto je jednoducho konvenčný radič pružín:

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

The FreeMarkerViewResolver a konfigurácie cesty definované vyššie sa postarajú o preklad názvu pohľadu index do správneho zobrazenia FreeMarker.

4. Šablóna HTML FreeMarker

4.1. Vytvorte jednoduché zobrazenie šablón HTML

Teraz je čas vytvoriť Šablóna HTML s FreeMarkerom. V našom príklade sme do modelu pridali zoznam automobilov. FreeMarker má prístup k uvedenému zoznamu a môže ho zobraziť opakovaním jeho obsahu.

Keď je podaná žiadosť o / automobily URI, Spring spracuje šablónu pomocou modelu, ktorý je k dispozícii. V našej šablóne #list smernice označuje, že značka FreeMarker by sa mala slučkovať cez zoznam automobilov objekt z modelu, pomocou auto odkazovať na aktuálny prvok a vykresliť obsah v rámci tohto bloku.

Nasledujúci kód tiež obsahuje FreeMarker výrazy odkazovať na atribúty každého prvku v zoznam automobilov; alebo napríklad na zobrazenie aktuálnych prvkov vozidla urobiť vlastnosť, používame výraz $ {car.make}.

FreeMarker Spring MVC Hello World

Pridať značku auta:

Model:

UrobiťModel
$ {car.make}$ {car.model}

Po upravení výstupu pomocou CSS vygenerovaná šablóna FreeMarker vygeneruje formulár a zoznam automobilov:

5. Jarná topánka

Ak používame Spring Boot, môžeme jednoducho importovať spring-boot-starter-freemarker závislosť:

 org.springframework.boot spring-boot-starter-freemarker 2.3.4.VEREJNOSŤ 

Potom jednoducho musíme pridať naše súbory šablón pod src / main / resources / templates. Spring Boot má na starosti ďalšie predvolené konfigurácie, ako je FreeMarkerConfigurer a FreeMarkerViewResolver.

6. Záver

V tomto článku sme diskutovali o tom, ako sa integrovať FreeMarker v jarnej aplikácii MVC. Schopnosti FreeMarkeru idú ďaleko nad rámec toho, čo sme predviedli, preto navštívte webovú stránku Apache FreeMarker, kde nájdete podrobnejšie informácie o jeho použití.

Vzorový kód v tomto článku je k dispozícii v projekte na Github.


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