[] Freemarker SpringMVC use as Freemarker view resolution

What is Freemarker?


FreeMarker is a Java-based template engine, originally focused on using the MVC software architecture to generate dynamic web pages. However, it is a generic template engine does not rely on or HTTP servlets or HTML, so it is often used to generate source code, configuration files or e-mail. (From wikipedia.org) 
official website: http://freemarker.org/

How to use Freemarker?


This article will introduce Freemarker in JavaWeb as usage view show (similar to JSP function), followed by the opportunity to introduce the use of this template engine technology to do code generation tool or use the e-mail function.

text


Initially we are ready for our first Freemarker template in the WEB-INF built templates folder, and then create a template test.ftl
 

<html>  
    <head> 
        <title>freemarker Test</title>  
    </head>
    <body>  
        <h1>Hello,${name}</h1>  
    </body>  
</html>  

Followed by introduction of dependence

    <properties>
        <spring.version>4.3.6.RELEASE</spring.version>
    </properties>

    <dependencies>
        <dependency>
            <groupId>org.freemarker</groupId>
            <artifactId>freemarker</artifactId>
            <version>2.3.23</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-core</artifactId>
            <version>${spring.version}</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-context</artifactId>
            <version>${spring.version}</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-context-support</artifactId>
            <version>${spring.version}</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-webmvc</artifactId>
            <version>${spring.version}</version>
        </dependency>
    </dependencies>

Configuring the web.xml (SpringMVC add filter intercepts all requests, abbreviated) 
was then added in view resolver Freemarker Spring configuration file

    <!-- FreeMarker模板路径 -->
    <bean id="freemarkerConfig"
        class="org.springframework.web.servlet.view.freemarker.FreeMarkerConfigurer">
        <property name="freemarkerSettings" ref="freemarkerConfiguration" />
        <property name="templateLoaderPath">
            <value>/WEB-INF/templates</value>
        </property>
        <property name="freemarkerVariables">
            <map>
                <entry key="xml_escape" value-ref="fmXmlEscape" />
            </map>
        </property>
        <property name="defaultEncoding">
            <value>utf-8</value>
        </property>
    </bean>
    <bean id="fmXmlEscape" class="freemarker.template.utility.XmlEscape" />

    <!-- 配置freeMarker视图解析器 -->
    <bean
        class="org.springframework.web.servlet.view.freemarker.FreeMarkerViewResolver">
        <property name="viewClass"
            value="org.springframework.web.servlet.view.freemarker.FreeMarkerView" />
        <property name="contentType" value="text/html; charset=utf-8" />
        <property name="suffix" value=".ftl" />
        <property name="order" value="0" />
    </bean>

Finally, we write a view controller to access test.ftl

@Controller
@RequestMapping(value="hello")
public class FirstViewController {
    @RequestMapping(value = "test.html", method = RequestMethod.GET)
    public String index(String name,Model model) {
        model.addAttribute("message", "hello");
        model.addAttribute("name", name);
        return "/test";
    }
}

https://img-blog.csdn.net/20170531001331559?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQveGlhb3BpbmcwOTE1/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast

Original link: [] Freemarker SpringMVC use as Freemarker view resolution

Guess you like

Origin blog.csdn.net/qq_34291570/article/details/96652340