Hurtig guide til Spring MVC med hastighed
1. Introduktion
Velocity er en skabelonmotor fra Apache Software Foundation, der kan arbejde med normale tekstfiler, SQL, XML, Java-kode og mange andre typer.
I denne artikel vil vi fokusere på at bruge Velocity med en typisk Spring MVC webapplikation.
2. Maven-afhængigheder
Lad os starte med at aktivere Velocity support - med følgende afhængigheder:
org.apache.velocity hastighed 1.7 org.apache.velocity velocity-tools 2.0
De nyeste versioner af begge kan findes her: hastighed og hastighedsværktøjer.
3. Konfiguration
3.1. Webkonfig
Hvis vi ikke ønsker at bruge en web.xml, lad os konfigurere vores webprojekt ved hjælp af Java og en initialisering:
offentlig klasse MainWebAppInitializer implementerer WebApplicationInitializer {@Override public void onStartup (ServletContext sc) kaster ServletException {AnnotationConfigWebApplicationContext root = new AnnotationConfigWebApplicationContext (); root.register (WebConfig.class); sc.addListener (ny ContextLoaderListener (root)); ServletRegistration.Dynamic appServlet = sc.addServlet ("mvc", ny DispatcherServlet (ny GenericWebApplicationContext ())); appServlet.setLoadOnStartup (1); }}
Alternativt kan vi selvfølgelig bruge det traditionelle web.xml:
Spring MVC Velocity mvc org.springframework.web.servlet.DispatcherServlet contextConfigLocation /WEB-INF/mvc-servlet.xml 1 mvc / * contextConfigLocation /WEB-INF/spring-context.xml org.springframework.web.context.Ctext.Cisten
Bemærk, at vi kortlagde vores servlet på "/ *" stien.
3.2. Spring Config
Lad os nu gå over en simpel Spring-konfiguration - igen startende med Java:
@Configuration @EnableWebMvc @ComponentScan (basePackages = {"com.baeldung.mvc.velocity.controller", "com.baeldung.mvc.velocity.service"}) offentlig klasse WebConfig udvider WebMvcConfigurerAdapter {@Override offentlig ugyldig addResourceHandler {registry .addResourceHandler ("/ resources / **") .addResourceLocations ("/ resources /"); } @ Override public void configureDefaultServletHandling (DefaultServletHandlerConfigurer configurer) {configurer.enable (); } @Bean public ViewResolver viewResolver () {VelocityLayoutViewResolver bean = ny VelocityLayoutViewResolver (); bean.setCache (sand); bean.setPrefix ("/ WEB-INF / views /"); bean.setLayoutUrl ("/ WEB-INF / layouts / layout.vm"); bean.setSuffix (". vm"); retur bønne; } @Bean public VelocityConfigurer velocityConfig () {VelocityConfigurer velocityConfigurer = ny VelocityConfigurer (); velocityConfigurer.setResourceLoaderPath ("/"); return velocityConfigurer; }}
Og lad os også se et hurtigt kig på XML-versionen af konfigurationen:
/
Her fortæller vi foråret, hvor man skal kigge efter kommenterede bønnedefinitioner:
Vi indikerer, at vi vil bruge annoteringsdrevet konfiguration i vores projekt med følgende linje:
Ved at oprette “velocityConfig”Og“viewResolver”Bønner vi fortæller VelocityConfigurer hvor man skal kigge efter skabeloner, og VelocityLayoutViewResolver hvor man kan finde udsigter og layout.
4. Hastighedsskabeloner
Lad os endelig oprette vores skabeloner - startende med en fælles overskrift:
og sidefod:
@Copyright baeldung.com
Og lad os definere et fælles layout for vores websted, hvor vi skal bruge ovenstående fragmenter med parse i følgende kode:
Spring & Velocity #parse ("/ WEB-INF / fragmenter / header.vm") $ screen_content #parse ("/ WEB-INF / fragmenter / footer.vm")
Du kan kontrollere det $ screen_content variabel har indholdet af siderne.
Endelig opretter vi en skabelon til hovedindholdet:
Vejledningsliste
Vejlednings-id Vejledningstitel Vejledning Beskrivelse Vejledningsforfatter #foreach ($ tut i $ tutorials) $ tut.tutId $ tut.title $ tut.beskrivelse $ tut. forfatter #ende
5. Controllerside
Vi har oprettet en simpel controller, der returnerer en liste over tutorials som indhold til vores layout, der skal udfyldes med:
@Controller @RequestMapping ("/") offentlig klasse MainController {@Autowired private ITutorialsService tutService; @RequestMapping (værdi, metode = RequestMethod.GET) offentlig String defaultPage () {return "index"; } @RequestMapping (værdi, metode = RequestMethod.GET) offentlig String listTutorialsPage (Model model) {List list = tutService.listTutorials (); model.addAttribute ("tutorials", liste); returner "indeks"; }}
Endelig kan vi få adgang til dette enkle eksempel lokalt - for eksempel på: localhost: 8080 / spring-mvc-velocity /
6. Konklusion
I denne enkle vejledning har vi konfigureret Forår MVC webapplikation med Hastighed skabelonmotor.
Den fulde prøvekode til denne vejledning kan findes i vores GitHub-arkiv.