1. 程式人生 > >springmvc整合freemarker,使用ftl檔案

springmvc整合freemarker,使用ftl檔案

0、需要一個已經配置好的springmvc專案,這裡就不多費口舌了

1、引入jar包:maven,一說還需要引入spring-context-support包

<dependency>
    <groupId>org.freemarker</groupId>
    <artifactId>freemarker</artifactId>
    <version>2.3.23</version>
</dependency>

2、springmvc的配置檔案,原始檔案修改

<!-- 定義檔案的位置 -->
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">

    <property name="order" value="1"/><!-- 增加一個屬性,如果找不到freemarker的模版則走原始的 -->

    <property name="prefix" value="/WEB-INF/jsp/"/>
    <property name="suffix" value=".jsp"/>
</bean>

3、springmvc的配置檔案,新增加

<!-- freemarker的配置 -->
<bean id="freemarkerConfig"
      class="org.springframework.web.servlet.view.freemarker.FreeMarkerConfigurer">
      <!-- 模版位置,這裡配置了下面就不用配了 -->
    <property name="templateLoaderPath" value="\WEB-INF\template" />
    <property name="freemarkerSettings"><!-- 一些設定 -->
        <props>
            <prop key="template_update_delay">0</prop>
            <prop key="default_encoding">UTF-8</prop>
            <prop key="number_format">0.##########</prop>
            <prop key="datetime_format">yyyy-MM-dd HH:mm:ss</prop>
            <prop key="classic_compatible">true</prop>
            <prop key="template_exception_handler">ignore</prop>
        </props>
    </property>
</bean>

<!-- freeMarker檢視解析器 -->
<bean id="freemarkerViewResolver"
      class="org.springframework.web.servlet.view.freemarker.FreeMarkerViewResolver">
    <property name="viewClass" value="org.springframework.web.servlet.view.freemarker.FreeMarkerView"
    />
    <property name="viewNames" value="*.ftl" />
    <property name="contentType" value="text/html; charset=utf-8" />
    <property name="cache" value="true" />
    <property name="suffix" value="" />
    <!--    作用百度即可
        <property name="exposeRequestAttributes" value="true" />
        <property name="exposeSessionAttributes" value="true" />
        <property name="exposeSpringMacroHelpers" value="true" /> 
    -->
    <!-- 檢視先走這個freemarker的,再走原始的 -->
    <property name="order" value="0" />
</bean>

4、java程式碼:

@RequestMapping("freemarkerTest")
public String getFirstPage(Model model) {
    model.addAttribute("test", "my name is freemarker");
    return "hello.ftl";
}

5、在上面配置的/WEB-INF/template/目錄下面新建hello.ftl檔案。
ps:idea原生支援ftl檔案,eclipse好像需要外掛
格式什麼的和jsp還挺像,網上隨便一搜一大把

<html>
    <head>
        <title>Insert title here</title>
    </head>
    <body>
        ${test}
    </body>
</html>

6、啟動服務,localhost:8080/專案名/freemarkerTest 即可