FreeMarker+struts学习内置函数

xiaoxiao2026-09-03  3

FreeMarker struts2 笔记 它是模板引擎 下载路径:www.FreeMarker.org 下载后文件夹的结构如下: examples是 包含了一个名问 FreeMarker的事例应用 docs包含了 Freemarker的相关帮助文档 src包含了FreeMarker的 全部源代码  lib是 核心内库    它的变量标识符是:${}或<#> 基本语法: FTL标签: <h1>欢迎:${username}</h1> <#list sequence as item> 1 if else/if else 指令 <#if condition> ... <#else if condition2> ... <#else if condition3> .. <#else> ... </#if> 2 list break指令 <#list hash_or_seq as item> .. <#if item="struts2"><#break><#if> ... </#list> 3 switch case default break指令 <#switch [value]> <#case [refValue1]> ... <#break> <#case refValue2> .. <#break> .... <#case refValueN> ... <#break> <#default> ... <#break> </#switch> 4 include指令 <#include [filename options ] encoding="GBK" parse=true > 5 import指令 <#import path as hash> 例:<#import "/test.ftl" as t > <@t.imp title="这是import指令的例子"/> 6 noparse指令 不主力指令里包含的内容 <#noparse> ... <#noparse> 例:<#noparse> <#assign score=70> <#if(score>60)>成绩及格 <#else>成绩不及格 <#if> <#noparse> 7 compress指令 用来压缩空白行的 <#compress> ... </#compress> 8 escape noescape指令 是使被escape指令包围的Interpolation自动加上escape表达式 <#escape identifer as expression> ... <#noescape >....</#noescape> ... </#escape> 例:<#escape el as el?html> 用户名:${username} 地址:${address} 年龄:${age} </#escape> 等同与以下代码: 用户名:${username?html} 地址:${address?html} 年龄:${age?html} 如果在 escape指令中某些Interpolation不需要添加escape表达式,则使用noescape指令 例:<#escape el as el?html> 用户名:${username} <#noescape>地址:${address}</#noescape> 年龄:${age} </#escape> 等同与以下代码: 用户名:${username?html} 地址:${address} 年龄:${age?html} 9 assign指令 作用是定义和隐藏变量,前面已经用过,assign指令不仅能定义 或隐藏一个变量,还能定 义或隐藏 变量 ,还能定音和隐藏多个变量 <#assign name=value> assign指令 作用是定义和隐藏变量,前面已经用过,assign指令不仅能定义 或隐藏一个变量,还能定 义或隐藏 变量 ,还能定音和隐藏多个变量,若想 定义或隐藏多个变量则使以下语法 <#assign name1=value1 name2=value2 ... nameN=valueN> Freemarker允许 assign指令 用in子句将定义的变量放入namespace(命名空间)中,语法如下: <#assign name in namespace> assign 指令 可以把一段输出的 文本作为变量,将变量的值赋给name,语法如下: <#assign name > 循环部分输出部分 </#assign> 事例代码: <#assign x> <#list ["春天","夏天","秋天","冬天"] as reason> ${reason_index}:${reason} </#list> </#assign> ${x} 小注意:使用assign指令的时候,建议使用 <#assign x=“${username}”/>这中语法 assign还允许 将name定义成中文 ,事例: <#assign 顾客=“欢迎你 :${customer}”/> ${顾客} 10 global指令 也是 定义变量 它是定义全局变量 <#global name> 11 setting指令 设置系统的运行环境,name的取值范围有以下几个 local 设置模板语言所用的 国家、语言选项 number_format 设置 格式化输出数字的格式 boolean_format 设置 2个boolean值的 语法格式,默认值是“true”,“false” date_format,time_format,datetime_format 设置格式化输出日期的格式 url_escaping_charset 设置URL传递参数的字符集编码格式 time_zone 设置格式化输出日期所使用的时区 <# setting name=value> 事例:<#setting number_format="percent"/> <#assisn num=10/> ${num} <#setting number_format="currency"/> ${num} 结果为:1000%,¥10.00 12 宏 <#macro name param2 ... paramN> ... <#nested loopvar1,loopvar2,....,loopvarN> ... <#rturn > ... </#macro> 13 t It rt nt 指令 <#t> 去掉左右空白和回车换行 <#It> 去掉左边空白和换行 <#rt> 去掉右边空白和换行 <#nt> 取消上面的效果 14 Interpolation 通用Interpolation 用${expre}表示,数字专用Interpolation 用 #{expre}或 #{expre;format} 事例代码 : <#setting number_format="percent"/> <#assign num=10/> ${num} ${num?string.number} ${num?string.percent} ${num?string.cutrrency} 结果为 :1000% 10 1000% ¥10.00 当 expre为日期时,会根据setting指令确定格式 <#--由setting指令确定--> <#setting date_format="yyyy-MM-dd HH:mm:ss zzzz"> 现在时间为:${nowDate?date?string}<br> <#--由内置的转换格式确定--> 现在的时间为 :${nowDate?datetime?string.short}<br> 现在的时间为 :${nowDate?datetime?string.long}<br> <#--自己指定日期--> 现在的时间为 :${nowDate?string("EEEE,MMM d,yy")}<br> 上面的输出为: 现在的时间为 :2008-05-02 09:48:33 中国标准时间 现在的时间为 :08-5-2 上午9:48 现在的时间为 :2008年5月2日 上午09时48分33秒 现在的时间为 :星期五,五月 2,08 15 其他 截取字符串 <#assign name="George Bush"> ${name[1]}${name[7]} ${name[1..5]} 结果: eB George 散列(hash)操作: <#assign userlist={"username":"sunyang","age":30}+{"address":"cc","age":25}> username:${userlist.username} age:${userlist.age} address:${userlist.address} 结果: username:sunyang age:25 address:cc 内建函数: 1)字符串函数: html:对字符串进行 HTML编码 cap_first 使字符串第一个字母大写 lower_case:将字符串转换成小写 upper_case:将字符串转换成大写 trim:去掉字符串 前后的 空白字符 2)集合函数 size 获得序列中元素的数目 3)int 取得数字的整数部分,如2.8?int的结果为2
转载请注明原文地址: https://www.6miu.com/read-5052326.html

最新回复(0)