Freemarker的使用

1.必须通过后台转发到jsp才能起作用,直接访问jsp无效
2.要将变量设置到request.setAttribute中,通过${变量名称}进行引用
3.判断变量是否存在
<#if firstTemp?exists> 或者 <#if firstTemp??>
4.指令的括号
<#if firstTemp?exists> 与 <#if firstTemp?exists > 右边可以多出空格
5.日期格式化
${date?string("yyyy-MM-dd HH:mm:ss")}
若date可能不存在
${(date?string("yyyy-MM-dd HH:mm:ss"))!''}
6.判断字符串长度
<#if myString?length>10>
7.list指令
<#list myList as item>
${item_index}表示索引
${item.myprop}表示item的属性
${item_has_next}表示是否有下一个元素
</#list>
8.空白问题
${ctx } <==> ${ctx}
<#if a>b >  <==> <#if a>b>
9.Map变量使用
${map['mykey']}
<#if map['mykey']>
10.根据索引使用list类型变量(索引从0开始)
${myList[1]}
<#if myList[1] == "ABC">
11.引用别的jsp
<@include_page path="path/to/some.jsp"/>
12.如果引用的是freemarker的模板文件,那么使用 <#include>
<#include "/common/navbar.html" parse=false encoding="Shift_JIS">

默认parse为true,当成freemarker的模板文件

http://freemarker.org/docs/ref_directive_include.html

13.<#if>,<#list> 中的不能使用${},而是直接使用变量名称

14.boolean(true/false)变量不能直接输出,可以这样输出 ${myBool?c} 或者 ${myBool?string('yes','no')}

15.注释采用<#--和-->, jsp的注释方式不能用

16.JSON字符串的使用

<#assign dataJson = ret?eval />

ret是JSONObject,通过setAttr("ret",ret")设置过

json array长度的判断 <#if (ret.arr?size==0)> 或 ${ret.arr?size}

在#if指令中使用,要用括号括起来,否则会出错,即类似  <#if user?? && (ret.arr?size>0)>

list类型数据,也可以这样计算长度

17.在变量为null或未设置时,显示默认值

${user!""} user为null是显示空白字符串

${(user.name)!""}  user或user.name为null时显示空白字符串

在#if指令上也可以用类似用法,<#if (user.name)??>  表示user或者user.name为null

18.设置自增变量

<#assign i = 1 />

<#assign i = i+1 />

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值