Uvod u korištenje FreeMarker-a u proljetnom MVC-u

1. Pregled

FreeMarker je mehanizam predložaka zasnovan na Javi iz Apache Software Foundation. Poput ostalih mehanizama predložaka, FreeMarker je dizajniran da podržava HTML web stranice u aplikacijama koje slijede MVC obrazac. Ovaj vodič ilustrira kako konfigurirajte FreeMarker za upotrebu u Spring MVC kao alternativa JSP-u.

Članak neće raspravljati o osnovama korištenja Spring MVC-a. Za detaljan uvid u to potražite u ovom članku. Osim toga, ovo nije namijenjeno detaljnom uvidu u opsežne mogućnosti FreeMarker-a. Za više informacija o korištenju i sintaksi FreeMarker, posjetite njegovu web stranicu.

2. Ovisnosti Mavena

Budući da je ovo projekt temeljen na Mavenu, prvo dodajemo potrebne ovisnosti na pom.xml:

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

3. Konfiguracije

Sada zaronimo u konfiguraciju projekta. Ovo je proljetni projekt zasnovan na napomenama, pa nećemo demonstrirati XML-zasnovanu konfiguraciju.

3.1. Proljetna web konfiguracija

Stvorimo klasu za konfiguriranje web komponenata. Za to moramo razred označiti s @EnableWebMvc, @Konfiguracija i @ComponentScan.

@EnableWebMvc @Configuration @ComponentScan ({"com.baeldung.freemarker"}) javna klasa SpringWebConfig proširuje WebMvcConfigurerAdapter {// Ovdje će ići sve web konfiguracije. }

3.2. Konfigurirati ViewResolver

Spring MVC Framework pruža ViewResolversučelje koje mapira nazive pogleda u stvarne poglede. Stvorit ćemo primjerak FreeMarkerViewResolver, koji pripada proljeće-webmvc ovisnost.

Taj objekt treba konfigurirati s potrebnim vrijednostima koje će se koristiti tijekom izvođenja. Na primjer, konfigurirat ćemo razrješivač prikaza da koristi FreeMarker za poglede koji završavaju na .ftl:

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

Također, primijetite kako ovdje možemo kontrolirati i način predmemoriranja - ovo bi trebalo onemogućiti samo za otklanjanje pogrešaka i razvoj.

3.3. Konfiguracija putanje FreeMarker predloška

Dalje, postavit ćemo putanju predloška koja označava gdje se predlošci nalaze u web kontekstu:

@Bean public FreeMarkerConfigurer freemarkerConfig () {FreeMarkerConfigurer freeMarkerConfigurer = novi FreeMarkerConfigurer (); freeMarkerConfigurer.setTemplateLoaderPath ("/ WEB-INF / views / ftl /"); vratiti freeMarkerConfigurer; }

3.4. Konfiguracija opružnog regulatora

Sada možemo koristiti Spring Controller za obraditi FreeMarker predložak za prikaz. Ovo je jednostavno konvencionalni kontroler opruge:

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

The FreeMarkerViewResolver i prethodno definirane konfiguracije puta pobrinut će se za prijevod imena pogleda indeks na pravilan FreeMarker prikaz.

4. FreeMarker HTML predložak

4.1. Stvorite jednostavan prikaz HTML predloška

Sada je vrijeme za stvaranje HTML predložak s FreeMarker. U našem smo primjeru modelu dodali popis automobila. FreeMarker može pristupiti tom popisu i prikazati ga prevlačenjem po njegovom sadržaju.

Kada se podnese zahtjev za /automobili URI, Spring će obraditi predložak koristeći model koji je dostavljen. U našem predlošku #popis direktiva označava da bi se FreeMarker trebao petljati preko popis automobila objekt iz modela, koristeći automobil za pozivanje na trenutni element i prikazivanje sadržaja unutar tog bloka.

Sljedeći kod također uključuje FreeMarker izrazi pozivati ​​se na atribute svakog elementa u popis automobila; ili primjer, za prikaz trenutnih elemenata automobila napraviti svojstvo, koristimo izraz $ {car.make}.

FreeMarker Spring MVC Hello World

Dodaj marku automobila:

Model:

NapravitiModel
$ {car.make}$ {car.model}

Nakon oblikovanja rezultata s CSS-om, obrađeni predložak FreeMarker generira obrazac i popis automobila:

5. Proljetna čizma

Ako koristimo Spring Boot, možemo jednostavno uvesti datoteku spring-boot-starter-freemarker ovisnost:

 org.springframework.boot spring-boot-starter-freemarker 2.3.4.OSLOBODI 

Zatim jednostavno moramo dodati datoteke predložaka pod src / main / resources / predlošci. Spring Boot zadužen je za druge zadane konfiguracije poput FreeMarkerConfigurer i FreeMarkerViewResolver.

6. Zaključak

U ovom smo članku razgovarali o načinu integracije FreeMarker u Spring MVC aplikaciji. Mogućnosti FreeMarker-a daleko nadilaze ono što smo pokazali, stoga posjetite web mjesto Apache FreeMarker za detaljnije informacije o njegovoj uporabi.

Uzorak koda u ovom članku dostupan je u projektu na Githubu.


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