本站首页    管理页面    写新日志    退出


«November 2025»
1
2345678
9101112131415
16171819202122
23242526272829
30


公告
本博客在此声明所有文章均为转摘,只做资料收集使用。并无其他商业用途。

我的分类(专题)

日志更新

最新评论

留言板

链接

Blog信息
blog名称:
日志总数:210
评论数量:205
留言数量:-19
访问次数:927997
建立时间:2007年5月10日




[界面和模板语言]FreeMarker设计指南(2)
文章收藏,  网上资源,  软件技术,  电脑与网络

李小白 发表于 2007/10/31 19:26:15

2、数据模型 (1)基础 l         在快速入门中介绍了在模板中使用的三种基本对象类型:scalars、hashes 和sequences,其实还可以有其它更多的能力: Ø         scalars:存储单值 Ø         hashes:充当其它对象的容器,每个都关联一个唯一的查询名字 Ø         sequences:充当其它对象的容器,按次序访问 Ø         方法:通过传递的参数进行计算,以新对象返回结果 Ø         用户自定义FTL标记:宏和变换器 l         通常每个变量只具有上述的一种能力,但一个变量可以具有多个上述能力,如下面的例子: (root) | +- mouse = "Yerri"     |     +- age = 12     |     +- color = "brown">  l         mouse既是scalars又是hashes,将上面的数据模型合并到下面的模板: ${mouse}       <#-- use mouse as scalar -->${mouse.age}   <#-- use mouse as hash -->${mouse.color} <#-- use mouse as hash -->  l         输出结果是: Yerri12brown  (2)Scalar变量 l         Scalar变量存储单值,可以是: Ø         字符串:简单文本,在模板中使用引号(单引号或双引号)括起 Ø         数字:在模板中直接使用数字值 Ø         日期:存储日期/时间相关的数据,可以是日期、时间或日期-时间(Timestamp);通常情况,日期值由程序员加到数据模型中,设计者只需要显示它们 Ø         布尔值:true或false,通常在<#if …>标记中使用 (3)hashes 、sequences和集合 l         有些变量不包含任何可显示的内容,而是作为容器包含其它变量,者有两种类型: Ø         hashes:具有一个唯一的查询名字和它包含的每个变量相关联 Ø         sequences:使用数字和它包含的每个变量相关联,索引值从0开始 l         集合变量通常类似sequences,除非无法访问它的大小和不能使用索引来获得它的子变量;集合可以看作只能由<#list …>指令使用的受限sequences (4)方法 l         方法变量通常是基于给出的参数计算值 l         下面的例子假设程序员已经将方法变量avg放到数据模型中,用来计算数字平均值: The average of 3 and 5 is: ${avg(3, 5)}The average of 6 and 10 and 20 is: ${avg(6, 10, 20)}The average of the price of python and elephant is: ${avg(animals.python.price, animals.elephant.price)} (5)宏和变换器 l         宏和变换器变量是用户自定义指令(自定义FTL标记),会在后面讲述这些高级特性 (6)节点 l         节点变量表示为树型结构中的一个节点,通常在XML处理中使用,会在后面的专门章节中讲述


阅读全文(1008) | 回复(0) | 编辑 | 精华
 



发表评论:
昵称:
密码:
主页:
标题:
验证码:  (不区分大小写,请仔细填写,输错需重写评论内容!)



站点首页 | 联系我们 | 博客注册 | 博客登陆

Sponsored By W3CHINA
W3CHINA Blog 0.8 Processed in 0.648 second(s), page refreshed 144795176 times.
《全国人大常委会关于维护互联网安全的决定》  《计算机信息网络国际联网安全保护管理办法》
苏ICP备05006046号