FreeMarker中常用的一些标签及语句
来源:互联网 发布:淘宝开店会员名大全 编辑:程序博客网 时间:2024/06/05 17:02
首先说一下FreeMarker中的注释为: <#–这里是注释的内容 –>
if语句
<#-- 判断num1等于18就输出 18一枝花! --><#if num1==18>18一枝花!</#if><#-- 字符串需要加上双引号 --><#if user=="小明">欢迎你</#if><#--布尔值 --><#if b2>b2是true!</#if>
if else 语句测试:
<#-- 不是使用> 大部分时候,freemarker会把>解释成标签结束(大于可以写 gt )--><#if num0 gt 18> 及格!<#else> 不及格!</#if>
时间格式化处理
<#-- 将变量datel 时间格式转换成 yyyy-MM-dd HH:mm:ss 格式输出 -->${date1?string("yyyy-MM-dd HH:mm:ss")}
内建函数:
1. html: 对字符串进行HTML编码;2. cap_first: 使字符串第一个字母大写;3. lower_case: 将字符串转成小写;4. upper_case: 将字符串转成大写;5. size 获得集合中元素的个数(集合相关常用的内建函数)6. int: 取得数字的整数部分(数字值相关常用的内建函数)内建函数的使用: 变量名?内建函数名, 假设后台传入一个htm2的参数,值为 <b>粗体</b>root.put("htm2", "<b>粗体</b>");<#--使用内建函数 html 对字符串(htm2变量)进行HTML编码-->${htm2?html}
空值处理:
${sss} <#--这样写 如果${sss} 没有定义这个变量,会报异常! -->${sss!} <#--这样写 没有定义这个变量,默认值是空字符串! -->${sss!"abc"} <#--这样写 没有定义这个变量,默认值是字符串abc! -->
遍历集合
<#-- 遍历 ls , as ys 表示遍历ls时中的每个元素取别名为 ys --><#list ls as ys > <b> ys </b><br/></#list>
取普通变量和对象的值:
<#--user 如果是一个普通变量,可以这样取值-->${user},<#--user 如果是一个对象,可以这样取该对象中name属性的值-->${user.uname}
取List集合中的数据
<#-- lst为一个List集合 根据下标索引取对应得值 -->${lst[0].city},${lst[1].city},${lst[2].city},
include包含
<#--将123.txt包含进来,这可以是包含另一个模板文件或者任何类型的文件--><#include "123.txt" />
自定义指令
<#--定义一个指令 为 dtest --><#macro dtest> <b>aaa</b> <b>bbb</b></#macro><#--调用上面定义的 dtest宏指令 --><@dtest/><@dtest /><#--定义一个指令 为 dtest2 如下 a b c 为参数 --><#macro dtest2 a b c > ${a}==${b}==${c}</#macro><#--调用上面定义的 dtest2宏指令,并传人参数 --><@dtest2 a="老高" b="老张" c="老马" /><#--定义一个指令 为 dtest3, <#nested>是获取调用时标签中间传入的内容 --><#macro dtest3> <table border=4 cellspacing=0 cellpadding=4> <tr> <td> <#nested> </td> </tr> </table> </#macro> <#--调用上面定义的 dtest3宏指令,标签中间是传入的内容 --><@dtest3 >这是要传入的内容!</@dtest3>
测试命名空间及优先级
<#--b.ftl文件内容如下--><#macro copyright date> <p>Copyright (C) ${date} 测试</p> </#macro> <#---这里是定义一个mail变量,值为123@163.com --><#assign mail = "123@163.com">
<#-- 引入一个b.ftl模板 取别名为bb --><#import "b.ftl" as bb /> <#--这里是调用bb模板中的copyright指令 并传入date参数 --><@bb.copyright date="2010-2011" /><#--这里是获取bb模板中的mail变量值 -->${bb.mail}<#--在当前模板中又定义一个跟bb模板中一样的变量--><#assign mail="234@163.com" /><#--这样调用的是当前的模板中的mail变量,会输出234@163.com -->${mail}<!-- 重新设置bb模板中 mail变量的值 --><#assign mail="7654@163.com" in bb /><#--再次获取bb模板中的mail变量值,输入的是修改后的值,为7654@163.com -->${bb.mail}
比 较 运 算
= (或者==) 判断两个值是否相等;!= 判断两个值是否不相等;注: =和!=可以用作字符串、数值和日期的比较,但两边的数据类型必须相同。而且FreeMarker的比较是精确比较,不会忽略大小写及空格。 >(或者gt) 大于>=(或者gte) 大于等于< (或者lt) 小于<=(或者lte) 小于等于注: 上面这些比较运算符可以用于数字和日期,但不能用于字符串。大部分时候,使用gt比>有更好的效果,因为FreeMarker会把>解释成标签的结束字符。可以使用括号来避免这种情况,如:<#if (x>y)>。逻辑操作:!registered && (firstVisit || fromEurope) 内建函数:name?upper_case 方法调用:repeat("What", 3) 处理不存在的值 name! 或者 (user.name)!如不存在默认值:name!"unknown" 或者(user.name)!"unknown" 检测不存在的值:name?? 或者(user.name)??
逻辑运算符
&& 逻辑与|| 逻辑或! 逻辑非逻辑运算符只能用于布尔值。
算术运算符
FreeMarker表达式中支持 + - * / % 运算符
数据类型常见示例
直接指定值 字符串 : "Foo"或 者'Foo'或"It's \"quoted\""或r"C:\raw\string" 数字:123.45 布尔值:true, false 序列:["foo", "bar", 123.45] , 1..100 从序列中检索:products[5] 哈希表:{"name":"green mouse", "price":150} 检索变量(如 顶层变量为 user) 从哈希表中检索数据:user.name, user[“name”] 特殊变量:.main 字符串操作 插值(或连接):"Hello ${user}!"(或"Free" + "Marker") 获取一个字符:name[0] 序列操作 连接:users + ["guest"] 序列切分:products[10..19] 或 products[5..] 哈希表操作 连接:passwords + {"joe":"secret42"} 算数运算: (x * 1.5 + 10) / 2 - y % 100 截取子串截取子串可以根据字符串的索引来进行,如果指定一个索引值,则取得字符串该索引处的字符;如果指定两个索引值,则截取两个索引中间的字符串子串。如:<#assign number="01234">${number[0]} <#-- 输出字符0 -->${number[0..3]} <#-- 输出子串“0123” -->
阅读全文
0 0
- FreeMarker中常用的一些标签及语句
- Freemarker一些常用的标签及用法
- freemarker的常用标签
- freemarker常用标签及语法
- 常用的freemarker标签语法
- FreeMarker标签介绍:表达式及常用指令
- freemarker FTL常用标签及语法
- (freemarker)FTL常用标签及语法
- html中一些简单的标签和一些sql语句
- php中一些常用的语句
- php中一些常用的语句收集
- freemarker的基本使用和常用标签
- freemarker标签常用指令
- FreeMarker常用标签介绍
- freemarker常用标签
- freemarker 常用标签总结
- freemarker常用标签
- freemarker常用标签
- 第23章 常见信号付氏变换及应用举例
- PhotoShop 导出多个图层
- 【Unity 3D游戏开发学习笔记】总结摄像机和光源的使用方法
- filter原理
- C语言实现异常机制setjmp() longjmp()
- FreeMarker中常用的一些标签及语句
- Git
- Java中定义常量(Constant) 的几种方法
- SQLIte数据库--ArrayAdapter适配器
- 森林结点数,边数与树个数的关系
- C语言实验——某年某月的天数
- JNI开发之JNI内存泄露
- 和客户谈项目学到的一点
- linux初次使用