经济适用房好不好:FreeMaker实现静态化技术(3)【标签的使用】

来源:百度文库 编辑:偶看新闻 时间:2024/04/30 02:54:59

<#setting number_format="currency"/>
<#assign answer=42/>
${answer}
${answer?string}
${answer?string.currency}
${answer?string.number}

输出:

¥42.00

¥42.00

¥42.00

42

日期型

在JAVA文件中定义

Map root = new HashMap();
root.put("message","Hello FreeMaker");
root.put("lastUpdate", new Date());

在模板文件中的输出

${lastUpdate?string("yyyy-mm-dd HH:mm:ss")}
${lastUpdate?string("EEE, MMM d, ''yy")}

输出:

2010-56-27 14:56:51
星期五, 八月 27, '10

数字型

数字格式化可采用#{expr:format}形式来格式化数字

mx:小数部分最小X位

Mx:小数部分最大X位

<#assign x=2.582/>
<#assign y=4/>
#{x;M2}<#--注意在这里数字的表示用#而不是用$-->
#{y;M2}
#{x;m1}
#{y;m1}
#{x;m1M2}
#{y;m1M2}

输出:

2.58

4

2.6

4.0

2.58

4.0

表达式

${"我是张三"}--直接定义字符串
${r"${foo}"}--特殊表示,定义在r后面的字符串都会输出
<#list ["星期一","星期二"] as x>--定义一个集合,集合采用[]表示,中间以逗号区分
${x}

对于map的定义和使用

定义一个BOOK类,和一个Author类

Book属性Name,Author

Author属性Name,Address

在JAVA中

Book book = new Book();
Author author = new Author();
book.setName("J2EE权威指南");

author.setName("李刚");
author.setAddress("广州");

book.setAuthor(author);


Map root = new HashMap();
root.put("message","Hello FreeMaker");
root.put("lastUpdate", new Date());

root.put("info","Struts2 权威指南");
root.put("book",book);//将Book添加到Map中

页面获取的方式

${book.author.name}

${book.name}

输出:李刚

J2EE权威指南

集合标签

<#list ["星期一","星期二","星期三","星期四"] as x>
${x_index + 1}.${x}<#if x_has_next>,

x代表当前指定的值。

x_index:当前变量的索引值

x_has_next:是否存在下一个对象

输出:星期一 星期二 星期三 星期四

不处理页面指令

<#noparse>

中间的内容将不做处理直接输出

<#list ["星期一","星期二","星期三","星期四"] as x>
${x_index + 1}.${x}<#if x_has_next>,

输出:

<#list ["星期一","星期二","星期三","星期四"] as x>
${x_index + 1}.${x}<#if x_has_next>,

escape指令

<#escape x as x?html>
FirstName:${message}

类似于:

FirstName:${message?html}

assign指令

<#assign y>
<#list ["星期一","星期二","星期三","星期四"] as x>
${x}


${y}

输出:

星期一 星期二 星期三 星期四

自定义模板标签

macro标签,可以自定义使用一个模板,

<#macro book booklist>
<#list booklist as a>
${a}

使用模板采用的标签是@
<@book booklist=["星期一","星期二","星期三","星期四"]/>

book是别名,为了在@处引用,booklist表示的是传入的数据,

<#list booklist as a>
${a}

在这个地方引用