1、注释:
<#-- -->
2、设置值
<#-- assign 设置值,此时answer=42 -->
<#assign answer=42/>
<#assign member = (action.getMemberInfo())!""/>
<#assign person={"name":"Tom","age":20,"address":"上海"} >
3、取值:
注:这里列出来的都是我用到过的。
${data}
${data.id}
<#-- 直接输出文案 并没有什么用 -->
${"我的文件保存在C:\\盘"}<br>
${'我名字是\"annlee\"'}
<#-- num存在则显示num,num不存在则显示0 -->
${(num)!"0"}
<#-- num存在则显示num,num不存在则不显示 -->
${(num)!}
<#-- 截取字符串 -->
<#assign content="content"/>
${content[0..4]} <#-- 输出 conte -->
<#-- 数值格式化输出 -->
<#assign answer=42/>
${answer} <#-- 42 -->
${answer?string} <#-- 42 -->
${answer?string.number} <#-- 42 -->
${answer?string.currency} <#-- ¥42.00 -->
${answer?string.percent} <#-- 4,200% -->
${answer}<#-- 42 -->
<#-- 数字格式化插值 -->
<#-- Mx 小数部分最大x位 mx 小数部分最小x位-->
<#assign x=3.1415>
<#assign y=4>
#{x;M2} <br> <#-- 3.14 -->
#{y;M2} <br> <#-- 4 -->
#{x;m2} <br> <#-- 3.14 -->
#{y;m2} <br> <#-- 4.00 -->
#{x;m1M2} <br> <#-- 3.14 -->
#{y;m1M2} <br> <#-- 4.0 -->
<#-- 类似三目运算 -->
<#assign foo=true/>
${foo?string("yes","no")}
<#-- 时间格式转换 -->
${date?string("yyyy-MM-dd HH:mm:ss")}<br>
${date?string("EEE, MMM d, yy")}<br>
${date?string("EEEE, MMMM dd, yyyy, hh:mm:ss:SSS a '('zzz')'")}<br>
自定义标签:
<@xxx>
例如:
-template(文件夹)
--base(文件夹)
---baseUrl.ftl
baseUrl.ftl 内容如下:
------
<#macro static>http://www.xxx.com</#macro>
------
那么你可以在其他.ftl中引入该文件,并使用baseUrl.ftl定义的标签
<#import "/base/baseUrl.ftl" as baseUrl>
<#-- 输出http://www.xxx.com -->
<@baseUrl.static>
引入文件:
<#-- import 引入的是宏定义,不会对页面产生渲染 -->
<#import "/base/baseUrl.ftl" as baseUrl>
<#-- include 引入的是视图内容,会渲染页面 -->
<#include "/base/baseUrl.ftl"/>
if else if:
<#if condition>...
<#elseif condition>...
<#elseif condition>...
<#else> ...
</#if>
<#-- 例如: -->
<#if user??>
<#-- user 存在 -->
<#elseif student??>
<#-- user 不存在 student 存在 -->
<#else>
<#-- user 和 student 都不存在 -->
</#if>
<#-- 判断是否存在 -->
<#if data?exists>
...
</#if>
<#-- 判断是否存在 -->
<#if data??>
...
</#if>
switch case:
<#switch value>
<#case refValue>...<#break>
<#case refValue>...<#break>
<#default>...
</#switch>
list 遍历
<#list myList as data>
${data.xxx}
</#list>
<#-- list 与 if else 嵌套使用 -->
<#list myList as data>
<#if item_has_next>${data},
<#else>end.
</#if>
</#list>
<#-- 使用item_has_next遍历, break退出,但是最后一个没有next不会输出,所以这种遍历有问题 -->
<#list myList as item>
<#if item_has_next>
end.<#break/>
</#if>
</#list>
<#-- list去前6 -->
<#list list?chunk(6) as row>
...
</#list>
<#-- list.size > 0 -->
<#if list?size gt 0>
...
</#list>
map 遍历:
<#list myMap?keys as key>
${key}
${myMap[key]}
</#list>