Kratki vodič za proljetni MVC s brzinom

1. Uvod

Brzina je mehanizam predloška Apache Software Foundation koji može raditi s normalnim tekstualnim datotekama, SQL-om, XML-om, Java kodom i mnogim drugim vrstama.

U ovom ćemo se članku usredotočiti na korištenje brzine s tipičnom web aplikacijom Spring MVC.

2. Ovisnosti Mavena

Krenimo s omogućavanjem podrške za brzinu - sa sljedećim ovisnostima:

 org.apache.brzina brzine 1.7 org.apache.brzina brzine-alati 2.0 

Ovdje možete pronaći najnovije verzije oba: brzina i brzi alati.

3. Konfiguracija

3.1. Web Config

Ako ne želimo koristiti web.xml, konfigurirajmo naš web projekt pomoću Jave i inicijalizatora:

javna klasa MainWebAppInitializer implementira WebApplicationInitializer {@Override public void onStartup (ServletContext sc) baca ServletException {AnnotationConfigWebApplicationContext root = new AnnotationConfigWebApplicationContext (); root.register (WebConfig.class); sc.addListener (novi ContextLoaderListener (korijen)); ServletRegistration.Dynamic appServlet = sc.addServlet ("mvc", novi DispatcherServlet (novi GenericWebApplicationContext ())); appServlet.setLoadOnStartup (1); }}

Alternativno, možemo se naravno poslužiti tradicionalnim web.xml:

 Proljetni 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.confontwork.web.confxt. 

Primijetite da smo svoj servlet mapirali na stazi “/ *”.

3.2. Spring Config

Idemo sada preko jednostavne konfiguracije Spring - opet, počevši od Jave:

@Configuration @EnableWebMvc @ComponentScan (basePackages = { "com.baeldung.mvc.velocity.controller", "com.baeldung.mvc.velocity.service"}) public class WebConfig proteže WebMvcConfigurerAdapter {public void @Override addResourceHandlers (ResourceHandlerRegistry registar) {registar .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 / prikazi /"); bean.setLayoutUrl ("/ WEB-INF / layout / layout.vm"); bean.setSuffix (". vm"); grah za povratak; } @Bean public VelocityConfigurer velocityConfig () {VelocityConfigurer velocityConfigurer = new VelocityConfigurer (); velocityConfigurer.setResourceLoaderPath ("/"); povratna brzinaConfigurer; }}

Ajmo također na brzinu pogledati XML verziju konfiguracije:

     /         

Ovdje proljeću govorimo gdje potražiti označene definicije graha:

Naznačujemo da ćemo u našem projektu koristiti konfiguraciju vođenu napomenama u sljedećem retku:

Stvaranjem „brzinaConfig"I"viewResolver”Grah koji govorimo VelocityConfigurer gdje potražiti predloške i VelocityLayoutViewResolver gdje pronaći poglede i izglede.

4. Predlošci brzine

Na kraju, kreirajmo svoje predloške - počevši od zajedničkog zaglavlja:

i podnožje:

 @Copyright baeldung.com 

I definirajmo zajednički izgled za našu web stranicu na kojem ćemo koristiti gore navedene fragmente raščlaniti u sljedećem kodu:

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

Možete to provjeriti $ screen_content varijabla ima sadržaj stranica.

Na kraju ćemo stvoriti predložak za glavni sadržaj:

Lista tutorijala

#foreach ($ tut u $ tutorijalima) #kraj
Id udžbenikaNaslov udžbenikaOpis vodičaAutor udžbenika
$ tut.tutId$ tut.title$ tut.description$ tut.author

5. Strana kontrolera

Stvorili smo jednostavan kontroler koji vraća popis vodiča kao sadržaj za naš izgled koji treba popuniti:

@Controller @RequestMapping ("/") javna klasa MainController {@Autowired private ITutorialsService tutService; @RequestMapping (value, method = RequestMethod.GET) public String defaultPage () {return "index"; } @RequestMapping (value, method = RequestMethod.GET) public String listTutorialsPage (Model model) {List list = tutService.listTutorials (); model.addAttribute ("tutorijali", popis); return "indeks"; }} 

Napokon, ovom jednostavnom primjeru možemo pristupiti lokalno - na primjer na: localhost: 8080 / spring-mvc-velocity /

6. Zaključak

U ovom jednostavnom vodiču konfigurirali smo Proljetni MVC web aplikacija sa Brzina predložak motora.

Cjelovit uzorak koda za ovaj vodič možete pronaći u našem GitHub spremištu.