Gyors útmutató a tavaszi MVC sebességhez
1. Bemutatkozás
A Velocity az Apache Software Foundation sablonmotorja, amely normál szövegfájlokkal, SQL, XML, Java kódokkal és sok más típussal képes működni.
Ebben a cikkben a Velocity kihasználására fogunk összpontosítani egy tipikus tavaszi MVC webalkalmazással.
2. Maven-függőségek
Kezdjük a Velocity támogatás engedélyezésével - az alábbi függőségekkel:
org.apache.velocity sebesség 1.7 org.apache.velocity speed-tools 2.0
Mindkettő legújabb verziója megtalálható itt: sebesség és sebesség eszközök.
3. Konfiguráció
3.1. Web Config
Ha nem akarunk egy web.xml, konfiguráljuk webprojektünket a Java és az inicializáló segítségével:
public class MainWebAppInitializer implementálja a WebApplicationInitializer {@Orride public void onStartup (ServletContext sc) dobja a ServletException {AnnotationConfigWebApplicationContext root = new AnnotationConfigWebApplicationContext (); root.register (WebConfig.class); sc.addListener (új ContextLoaderListener (root)); ServletRegistration.Dynamic appServlet = sc.addServlet ("mvc", új DispatcherServlet (új GenericWebApplicationContext ())); appServlet.setLoadOnStartup (1); }}
Alternatív megoldásként természetesen használhatjuk a hagyományosat is web.xml:
Tavaszi MVC Velocity mvc org.springframework.web.servlet.DispatcherServlet contextConfigLocation /WEB-INF/mvc-servlet.xml 1 mvc / * contextConfigLocation /WEB-INF/spring-context.xml org.springframework.ener.webtext
Figyelje meg, hogy a servletet feltérképeztük a „/ *” ösvényen.
3.2. Tavaszi konfigur
Most nézzünk át egy egyszerű tavaszi konfigurációt - ismét a Java-val kezdve:
@Configuration @EnableWebMvc @ComponentScan (basePackages = {"com.baeldung.mvc.velocity.controller", "com.baeldung.mvc.velocity.service"}) nyilvános osztály WebConfig kiterjeszti a WebMvcConfigurerAdapter {@Override nyilvántartási nyilvántartó nyilvántartó érvénytelen addRes {register .addResourceHandler ("/ resources / **") .addResourceLocations ("/ resources /"); } @Orride public void configureDefaultServletHandling (DefaultServletHandlerConfigurer configurer) {configurer.enable (); } @Bean public ViewResolver viewResolver () {VelocityLayoutViewResolver bean = new VelocityLayoutViewResolver (); bean.setCache (true); bean.setPrefix ("/ WEB-INF / nézetek /"); bean.setLayoutUrl ("/ WEB-INF / layouts / layout.vm"); bean.setSuffix (". vm"); visszatérő bab; } @Bean public VelocityConfigurer velocityConfig () {VelocityConfigurer velocityConfigurer = new VelocityConfigurer (); velocityConfigurer.setResourceLoaderPath ("/"); visszatérési sebességConfigurer; }}
És nézzük meg gyorsan a konfiguráció XML változatát is:
/
Itt elmondjuk Springnek, hol keresse a feljegyzett babdefiníciókat:
Jelezzük, hogy annotáció-vezérelt konfigurációt fogunk használni a projektünkben a következő sorral:
LétrehozásávalsebességConfig”És„viewResolver”Babot mondunk VelocityConfigurer hol lehet sablonokat keresni, és VelocityLayoutViewResolver hol találhat nézeteket és elrendezéseket.
4. Sebességsablonok
Végül hozzuk létre sablonjainkat - kezdve egy közös fejléccel:
és lábléc:
@Copyright baeldung.com
És határozzunk meg egy közös elrendezést a webhelyünkhöz, ahol a fenti töredékeket fogjuk használni elemzés a következő kódban:
Tavasz és sebesség #parse ("/ WEB-INF / fragments / header.vm") $ screen_content #parse ("/ WEB-INF / fragments / footer.vm")
Ezt ellenőrizheti $ screen_content változó tartalmazza az oldalak tartalmát.
Végül létrehozunk egy sablont a fő tartalomhoz:
Oktatóanyagok listája
Oktató azonosító Bemutató címe Oktatóanyag leírása Oktatószerző #foreach ($ tut in $ tutorials) $ tut.tutId $ tut.title $ tut.leírás $ tut.author # vége
5. Vezérlő oldala
Hoztunk létre egy egyszerű vezérlőt, amely az oktatóanyagok listáját adja vissza az elrendezésünk tartalmaként:
@Controller @RequestMapping ("/") public class MainController {@Autowired private ITutorialsService tutService; @RequestMapping (érték, módszer = RequestMethod.GET) public String defaultPage () {return "index"; } @RequestMapping (érték, módszer = RequestMethod.GET) public String listTutorialsPage (modell modell) {List list = tutService.listTutorials (); model.addAttribute ("oktatóanyagok", lista); return "index"; }}
Végül helyi szinten elérhetjük ezt az egyszerű példát - például: localhost: 8080 / spring-mvc-velocity /
6. Következtetés
Ebben az egyszerű bemutatóban konfiguráltuk Tavaszi MVC webalkalmazás a Sebesség sablon motor.
Az oktatóanyag teljes mintakódja megtalálható a GitHub adattárunkban.