Hurtigguide til vår MVC med hastighet

1. Introduksjon

Velocity er en malmotor fra Apache Software Foundation som kan fungere med vanlige tekstfiler, SQL, XML, Java-kode og mange andre typer.

I denne artikkelen skal vi fokusere på å bruke Velocity med en typisk Spring MVC-webapplikasjon.

2. Maven-avhengigheter

La oss starte med å aktivere Velocity-støtten - med følgende avhengigheter:

 org.apache.velocity velocity 1.7 org.apache.velocity velocity-tools 2.0 

De nyeste versjonene av begge finner du her: hastighet og hastighetsverktøy.

3. Konfigurasjon

3.1. Web Config

Hvis vi ikke vil bruke en web.xml, la oss konfigurere webprosjektet vårt ved hjelp av 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", new DispatcherServlet (new GenericWebApplicationContext ())); appServlet.setLoadOnStartup (1); }}

Alternativt kan vi selvfølgelig bruke det tradisjonelle 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.Cisten.Cisten 

Legg merke til at vi kartla servleten vår på “/ *” -stien.

3.2. Vårkonfig

La oss nå gå over en enkel vårkonfigurasjon - igjen, startende med Java:

@Configuration @EnableWebMvc @ComponentScan (basePackages = {"com.baeldung.mvc.velocity.controller", "com.baeldung.mvc.velocity.service"}) offentlig klasse WebConfig utvider WebMvcConfigurerAdapter {@Override offentlig ugyldig addResourceHandler {registry .addResourceHandler ("/ resources / **") .addResourceLocations ("/ resources /"); } @ Override public void configureDefaultServletHandling (DefaultServletHandlerConfigurer configurer) {configurer.enable (); } @Bean public ViewResolver viewResolver () {VelocityLayoutViewResolver bean = new VelocityLayoutViewResolver (); bean.setCache (true); 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 ("/"); retur velocityConfigurer; }}

Og la oss også se raskt på XML-versjonen av konfigurasjonen:

     /         

Her forteller vi våren hvor vi skal se etter merkede bønnedefinisjoner:

Vi indikerer at vi skal bruke annoteringsdrevet konfigurasjon i prosjektet vårt med følgende linje:

Ved å lage “velocityConfig”Og”viewResolver”Bønner forteller vi VelocityConfigurer hvor du skal se etter maler, og VelocityLayoutViewResolver hvor du kan finne utsikter og oppsett.

4. Hastighetsmaler

Til slutt, la oss lage malene våre - startende med en felles overskrift:

og bunntekst:

 @Copyright baeldung.com 

Og la oss definere et felles oppsett for nettstedet vårt der vi skal bruke fragmentene ovenfor analysere i følgende kode:

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

Du kan sjekke det $ screen_content variabel har innholdet på sidene.

Til slutt lager vi en mal for hovedinnholdet:

Opplæringsliste

#foreach ($ tut i $ tutorials) #slutt
Opplærings-IDOpplæringstittelVeiledningsbeskrivelseOpplæringsforfatter
$ tut.tutId$ tut.title$ tut.beskrivelse$ tut. forfatter

5. Kontrollerens side

Vi har laget en enkel kontroller som returnerer en liste over opplæringsprogrammer som innhold for oppsettet vårt som skal fylles ut med:

@Controller @RequestMapping ("/") offentlig klasse MainController {@Autowired private ITutorialsService tutService; @RequestMapping (verdi, metode = RequestMethod.GET) offentlig String defaultPage () {return "index"; } @RequestMapping (verdi, metode = RequestMethod.GET) offentlig String listTutorialsPage (Model model) {List list = tutService.listTutorials (); model.addAttribute ("tutorials", liste); returner "indeks"; }} 

Til slutt kan vi få tilgang til dette enkle eksemplet lokalt - for eksempel på: localhost: 8080 / spring-mvc-velocity /

6. Konklusjon

I denne enkle opplæringen har vi konfigurert Vår MVC webapplikasjon med Hastighet malmotor.

Den fullstendige eksempelkoden for denne opplæringen finner du i GitHub-depotet vårt.


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