您的位置:首页 > 其它

freemarker 入门笔记

2015-11-30 15:27 375 查看

一、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>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: