Stručný sprievodca pre jarné MVC s rýchlosťou

1. Úvod

Velocity je šablónový nástroj od Apache Software Foundation, ktorý dokáže pracovať s normálnymi textovými súbormi, kódmi SQL, XML, Java a mnohými ďalšími typmi.

V tomto článku sa zameriame na využitie rýchlosti s typickou webovou aplikáciou Spring MVC.

2. Maven závislosti

Začnime povolením podpory rýchlosti - s nasledujúcimi závislosťami:

 org.apache.velocity velocity 1,7 org.apache.velocity velocity-tools 2.0 

Najnovšie verzie oboch verzií nájdete tu: rýchlosť a nástroje rýchlosti.

3. Konfigurácia

3.1. Webová konfigurácia

Ak nechceme použiť web.xml, nakonfigurujme náš webový projekt pomocou Javy a inicializátora:

public class MainWebAppInitializer implementuje WebApplicationInitializer {@Override public void onStartup (ServletContext sc) hodí ServletException {AnnotationConfigWebApplicationContext root = nový AnnotationConfigWebApplicationContext (); root.register (WebConfig.class); sc.addListener (nový ContextLoaderListener (root)); ServletRegistration.Dynamic appServlet = sc.addServlet ("mvc", nový DispatcherServlet (nový GenericWebApplicationContext ())); appServlet.setLoadOnStartup (1); }}

Prípadne môžeme samozrejme použiť tradičné web.xml:

 Jarná rýchlosť MVC mvc org.springframework.web.servlet.DispatcherServlet contextConfigLocation /WEB-INF/mvc-servlet.xml 1 mvc / * contextConfigLocation /WEB-INF/spring-context.xml org.springframework.web.context.web.context.web.context.web.context. 

Všimnite si, že sme náš servlet namapovali na cestu „/ *“.

3.2. Jarná konfig

Poďme si teraz prejsť na jednoduchú jarnú konfiguráciu - opäť počínajúc Java:

@Configuration @EnableWebMvc @ComponentScan (basePackages = {"com.baeldung.mvc.velocity.controller", "com.baeldung.mvc.velocity.service"}) verejná trieda WebConfig rozširuje WebMvcConfigurerAdapter {@Override verejné neplatné addResourceHandlers (ResourceHandlers (ResourceHandlers) {register .addResourceHandler ("/ resources / **") .addResourceLocations ("/ resources /"); } @Override public void configureDefaultServletHandling (konfigurátor DefaultServletHandlerConfigurer) {configurer.enable (); } @Bean public ViewResolver viewResolver () {VelocityLayoutViewResolver bean = nový VelocityLayoutViewResolver (); bean.setCache (true); bean.setPrefix ("/ WEB-INF / zobrazenia /"); bean.setLayoutUrl ("/ WEB-INF / layouts / layout.vm"); bean.setSuffix (". vm"); spätná fazuľa; } @Bean public VelocityConfigurer velocityConfig () {VelocityConfigurer velocityConfigurer = nový VelocityConfigurer (); velocityConfigurer.setResourceLoaderPath ("/"); návratová rýchlosťConfigurer; }}

Poďme sa tiež rýchlo pozrieť na verziu XML konfigurácie:

     /         

Tu hovoríme Springu, kde hľadať anotované definície fazule:

Naznačujeme, že v našom projekte použijeme konfiguráciu založenú na anotáciách, nasledujúcim riadkom:

Vytvorením „velocityConfig“A„viewResolver”Fazuľa hovoríme VelocityConfigurer kde hľadať šablóny a VelocityLayoutViewResolver kde nájsť pohľady a rozloženia.

4. Šablóny rýchlosti

Nakoniec si vytvoríme naše šablóny - počnúc spoločnou hlavičkou:

a päta:

 @Copyright baeldung.com 

Poďme definovať spoločné rozloženie pre našu stránku, kde budeme používať fragmenty vyššie analyzovať v nasledujúcom kóde:

  Spring & Velocity #parse ("/ WEB-INF / fragmenty / header.vm") $ screen_content #parse ("/ WEB-INF / fragmenty / footer.vm") 

Môžete to skontrolovať $ screen_content premenná má obsah stránok.

Nakoniec vytvoríme šablónu pre hlavný obsah:

Zoznam výukových programov

#foreach ($ tut v $ tutoriáloch) #koniec
Tutorial IdNázov výučbyPopis výučbyAutor tutoriálu
$ tut.tutId$ tut.title$ tut.description$ tut.autor

5. Strana ovládača

Vytvorili sme jednoduchý radič, ktorý vracia zoznam tutoriálov ako obsah pre naše rozloženie, do ktorého sa má naplniť:

@Controller @RequestMapping ("/") verejná trieda MainController {@Autowired private ITutorialsService tutService; @RequestMapping (value, method = RequestMethod.GET) public String defaultPage () {return "index"; } @RequestMapping (hodnota, metóda = RequestMethod.GET) public String listTutorialsPage (model modelu) {List list = tutService.listTutorials (); model.addAttribute ("návody", zoznam); návratový "index"; }} 

Nakoniec môžeme k tomuto jednoduchému príkladu pristupovať lokálne - napríklad na adrese: localhost: 8080 / spring-mvc-velocity /

6. Záver

V tomto jednoduchom návode sme nakonfigurovali Jarné MVC webová aplikácia s Rýchlosť šablónový motor.

Celý ukážkový kód tohto tutoriálu nájdete v našom úložisku GitHub.