1. 与spring 集成
1 utf-8 zh_CN true,false yyyy-MM-dd HH:mm:ss yyyy-MM-dd HH:mm:ss 0.###### true
2. 结合sitemesh使用
1) 在web.xml里加入配置
sitemesh com.opensymphony.sitemesh.webapp.SiteMeshFilter sitemesh /* sitemesh-freemarker com.opensymphony.module.sitemesh.freemarker.FreemarkerDecoratorServlet TemplatePath / default_encoding UTF-8 2 sitemesh-freemarker *.ftl
2) 修改decorators.xml(必须要在根目录下)
/css/* /images/* /js/* /error *
3) 需要用的jar包
opensymphony sitemesh 2.4.2
3. freemarker 常见语法
1)保留两位小数点${orderDetail.price?string("#.##")}
2)格式化时间${orderDetail.order.createTime?string("yyyy-MM-dd HH:mm:ss")}
3) 获取当前时间${.now?date} 返回的是2015-11-11
4. 宏和函数定义和使用
1)宏
写法:
<#macro page url page maskSize=5> <#if (number == pages)><li><a href="javascript:void(0);">下一页</a></li>
<li><a href="javascript:void(0);">尾页</a></li>
<#else>
<li><a href="${buildPageUrl(url2,page.pageNum+1,page)}">
(注:这个地方可以直接调用宏所在的FTL中的函数)下一页</a>
</li>
<li><a href="${buildPageUrl(url2,page.pages,page)}">尾页</a></li>
</#if>
</#macro>
引入方式: <#import "/user/common/macro/page.ftl" as pg > 调用方式:<@pg.page url="${queryUrl}" page=page maskSize=10 /> 2).函数(function) 写法: <#function buildPageUrl url pageNum data><#assign pageUrl = "${url}?pageNum=${pageNum}&pageSize=${data.pageSize}">
<#return pageUrl/>
</#function>
引入方式:<#include "/user/common/macro/date.ftl"/> 调用方式: ${buildPageUrl(url2,page.pageNum+1,page)} 3.不同的地方 1) <#return/> 的用途、引入方式、 调用方式 都不同。 2) 宏:可以提前返回,比如<#return/> 但是不能<#return 1>, A macro cannot return a value 宏,主要作用是,拼接内容,把宏内部的字符串展示出来,return返回值没有意义。 函数:与宏的调用方式不同,直接 ${buildPageUrl(url2,page.pageNum+1,page)}执行函数。 返回值才是最关键的结果,不是为了显示函数内部的字符串内容。补充一点,在宏所在的ftl中,同时定义了函数,宏中可以直接使用这个函数。