首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

freemarker之模板开发(数值跟类型)

2012-10-23 
freemarker之模板开发(数值和类型)freemarker之模板开发(数值和类型)----------??1.数值(略)?2.类型a.标量

freemarker之模板开发(数值和类型)

freemarker之模板开发(数值和类型)

----------

?

?

1.数值(略)

?

2.类型

a.标量

标量是最基本,最简单的数值类型,它们可以是:

字符串

数字

布尔值

日期(受java平台限制的)

b.容器

这些值存在的目的是为了包含其他变量,它们仅仅作为容器。被包含的变量通常是子变量。容器类型有:

哈希表:每个子变量都可以通过一个唯一的名称来查找,这个名称是不受限制的字符串。哈希表并不确定其中子变量的顺序,变量仅仅是通过名称来访问的。

序列:每个子变量通过一个整数来标识。第一个子变量的标识符是0,第二个是1,第三个是2,以此类推。这些数字通常被称为是子变量的索引。

集:从模板设计者角度来看,集是有限制的序列。不能获取集的大小,也不能通过索引取出集中的子变量,但是它们仍然可以通过list指令来遍历。

c.子程序

方法和函数: ?一个值是方法或函数的时候那么它就可以计算其值,结果取决于传递给它的参数。

如:The average of 3 and 5 is : ${avg(3,5)}

那么方法和函数有什么区别呢?方法是来自于数据模型(它们反射了java对象的方法),而函数是定义在模板内的,但二者可以用同一种方式来使用。

用户自定义指令: 用户自定义指令(换句话说,就是FreeMarker的标签)这种类型的值也是一种子程序,一种可以复用的模板代码段。用户自定义指令示例:

?

<@box title="Attention!">Too much copy-pasting may leads to maintenance headaches.</@box>

?函数/方法和用户自定义指令的比较:按经验来说,如果能够实现,请先用自定义指令而不要用函数/方法。指令的特征如下:. 输出(返回值)的是标记(HTML,XML等)。主要原因是函数的返回结果可以自动进行xml转义(这是因为${}的特性),而用户自定义指令的输出则不是(这是因为<@...>的特性所致,它的输出假定为是标记,因此不再转义)。. 副作用也是很重要的一点,它没有返回值。. 会进行流程的控制(就像list或if指令那样),但是不能在函数/方法上这么做。

?

?

?

?

热点排行