freemarker 入门笔记

本文是关于Spring MVC整合Freemarker的快速入门笔记。主要步骤包括:1、web.xml配置保持不变;2、调整spring-mvc.xml中视图解析器的配置;3、创建FTL文件,如base.ftl用于存放自定义标签,index.ftl为Demo展示。通过宏定义实现Freemarker的自定义标签,并使用<@include>标签引入其他模板。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、Demo 快速入门:

使用 springmvc + freemarker 编写demo:
1、web.xml配置不变
2、spring-mvc.xml配置,修改view项的配置,如下:

    <!-- freemaker配置 -->
    <bean id="freemarkerConfig"  
        class="org.springframework.web.servlet.view.freemarker.FreeMarkerConfigurer">  
        <!-- .ftl 文件位置 -->
        <property name="templateLoaderPath" value="/templates/" />  
        <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="viewResolver"  
        class="org.springframework.web.servlet.view.freemarker.FreeMarkerViewResolver">  
        <property name="cache" value="true" />  
        <property name="prefix" value="" />  
        <property name="suffix" value=".ftl" />  
        <property name="contentType" value="text/html;charset=UTF-8"></property>  
        <property name="requestContextAttribute" value="request" />  
        <property name="exposeSpringMacroHelpers" value="true" />  
        <property name="exposeRequestAttributes" value="true" />  
        <property name="exposeSessionAttributes" value="true" />  
    </bean>

简版:

  <!--  配置freeMarker的模板路径 --> 
  <bean class="org.springframework.web.servlet.view.freemarker.FreeMarkerConfigurer">  
     <property name="templateLoaderPath" value="/templates/" />  
     <property name="defaultEncoding" value="UTF-8" />  
  </bean>  
  <!-- freemarker视图解析器 -->
  <bean class="org.springframework.web.servlet.view.freemarker.FreeMarkerViewResolver">  
     <property name="suffix" value=".ftl" />  
     <property name="contentType" value="text/html;charset=UTF-8" />  
     <!-- 此变量值为pageContext.request, 页面使用方法:rc.contextPath -->
     <property name="requestContextAttribute" value="request" />  
  </bean>   

3、其余配置均与jsp一致

4、*.ftl文件示例:
(1)webapp/templates/macro/base.ftl
注:这个文件里面是存放自定义标签的,freemarker的自定义标签是通过<#macro xxx></#macro>宏定义) 来实现的。这里写出的文件路径,仅供参考。

<#macro url>http://www.test.com</#macro>
...

(2)webapp/templates/include/xxx.ftl
这是一个用于引入的文件,内容随意。使用 <#include "include/xxx.ftl" /> 完成引入。
(3)index.ftl
Demo案例的话就按照程序猿的惯例 – hello world!

<#-- import标签引入宏定义 -->
<#import "/macro/baseUrl.ftl" as base>
<#escape x as x?html>
<!DOCTYPE html>  
<html>  
<head>  
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">  
    <title>Insert title here</title>  
</head>  
<body>  
    <#-- 引入外部 .ftl 文件 -->
    <#include "include/table.ftl" />
    <#-- 打印引入的标签 -->
    <@base.url/>
    hello world!
</body>  
</html>
</#escape>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值