freemarker 语法入门笔记

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>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值