SpringMVC as the default JSP template engine, how to support Freemarker in support of the SpringMVC?
It is divided into four steps:
(1) pox.xml introducing dependent
<dependency> <groupId>org.freemarker</groupId> <artifactId>freemarker</artifactId> <version>2.3.28</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context-support</artifactId> <version>4.2.8.RELEASE</version> </dependency>
(2) Start Freemarker template engine
< The bean ID = "ViewResolver" class = "org.springframework.web.servlet.view.freemarker.FreeMarkerViewResolver" > <-! Setting response output, and address Chinese distortion -> < Property name = "contentType" value = " text / HTML; charset = UTF-8 " /> ! <- designated Freemarker template file extension -> < Property name =" suffix " value . =" FTL " /> </ bean >
(3) Configuration parameters Freemarker
<! - Configuration parameters Freemarker -> < bean the above mentioned id = "freemarkerConfig" class = "org.springframework.web.servlet.view.freemarker.FreeMarkerConfigurer" > <! - saved settings template directory -> < Property name = "templateLoaderPath" value = "/ the WEB-INF / FTL" /> <-! other template engine settings -> < Property name = "freemarkerSettings" > < props > <-! use when setting up the script and data rendering Freemarker character set -> < prop Key = "defaultEncoding">UTF-8</prop> </props> </property> </bean>
(4) simple example
@Controller @RequestMapping ( "/ FM" ) public class FreemarkerController { @GetMapping ( "/ T" ) public ModelAndView showTest () { ModelAndView MAV = new new ModelAndView ( "/ Test"); // because the configuration of the extension, it is not need to write the full name UserInfo userInfo = new new UserInfo (); userInfo.setName ( "KEBI" ); mav.addObject ( "U" , userInfo); return MAV; } }
Create a file directory:
Test.ftl File Edit:
<h1 of> $ { u.name } </ h1 of>
Note before running needs to be added to the new dependencies inside Tomcat:
access: