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

#foreach ($ tut i $ tutorials) #ende
Vejlednings-idVejledningstitelVejledning BeskrivelseVejledningsforfatter
$ tut.tutId$ tut.title$ tut.beskrivelse$ tut. forfatter

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.


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