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
Id udžbenika Naslov udžbenika Opis vodiča Autor udžbenika #foreach ($ tut u $ tutorijalima) $ tut.tutId $ tut.title $ tut.description $ tut.author #kraj
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.