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
Tutorial Id Názov výučby Popis výučby Autor tutoriálu #foreach ($ tut v $ tutoriáloch) $ tut.tutId $ tut.title $ tut.description $ tut.autor #koniec
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.