当前位置: 代码迷 >> Web前端 >> Freemarker学习札记(二)
  详细解决方案

Freemarker学习札记(二)

热度:164   发布时间:2012-06-30 17:20:12.0
Freemarker学习笔记(二)

?

输出变量值:

?

?1.输出集合元素

?

???? (1).集合元素以“方括号[]”的方式存储值,其中集合元素包含两个特殊的循环变量:

??????????? item_index:当前变量的索引值

??????????? item_has_next:是否存在下一对象

??????? 可以用<#break>指令跳出迭代。


?????(2).assign指令使用方法

????????

????????? a.最简单的语法:<#assign? name = value />

?

<tr>
	<td style="text-align:left">
		<#assign week = ["星期一","星期二","星期三","星期四","星期五"]/>
		<#list week as weekDay>
			${weekDay},
		</#list>
		<br>
		${week[3]}<br>
		
	</td>
</tr>

?

结果如下:

?

星期一, 星期二, 星期三, 星期四, 星期五, 
星期四

?

????????b.定义集合元素时,语法如下:

????????????? <#assign? iteratorName >

????????????????????? capture this?????????????????????

???????????? </#assign>?

?

<tr>
	<td style="text-align:left">
		<#assign x>
			<#list ["一","二","三","四","五","六","七"] as ls>
				${ls_index+1}:${ls}
				<#if ls == '六'>
					<#break>
				</#if>
				<#if ls_has_next>
					,
				</#if>
			</#list>
		</#assign>
		assign Test:${x}<br>
	</td>
</tr>

?

结果如下:

?

assign Test: 1:一 , 2:二 , 3:三 , 4:四 , 5:五 , 6:六 

?

? ? (3)嵌套集合元素

?

??? 集合元素中还可以嵌套集合元素,取值方法如下:

?

<tr>
	<td style="text-align:left">
		<#assign week = [["星期一","星期二","星期三","星期四","星期五"],["星期六","星期日"],"一周"]/>
		工作日:
		<#list week[0] as weekDay>
			${weekDay},
		</#list>
		<br>
		休息日:
		<#list week[1] as weekDay>
			${weekDay},
		</#list>
		<br>
		周期:
			${week[2]}
	</td>
</tr>

?

结果如下:

?

工作日: 星期一, 星期二, 星期三, 星期四, 星期五, 
休息日: 星期六, 星期日, 
周期: 一周 

?

2.输出Map元素

?? (1)简单的Map元素取值

???????? 元素赋值如下:

?????????<#assign? mapList = { key1:value1 , key2:value2 ,...}

?????????Map元素以“花括号{}”包含,其中各个集合元素间以“逗号,”分隔,元素以key-value的格式用“冒号:分隔”。

????

<tr>
	<td style="text-align:left">
		<#assign score = {"语文":80 ,"数学":90 ,"英语":78} />
		<#list score?keys as x>
			${x} : ${score[x]} 
			<#if x_has_next>
				,
			</#if>
		</#list>
	</td>
</tr>

?

结果如下:

?

语文 : 80 , 数学 : 90 , 英语 : 78 

?

??? (2)嵌套的Map元素取值:

?

<tr>
	<td style="text-align:left">
		<#assign score = {"语文":80 ,"数学":90 ,"英语":78,"理综":{"物理":70,"化学":67,"生物":87}} />
		<#list score?keys as x>
			<#if (x == "理综" ) >
				${x} : 
				<#list score[x]?keys as y>
				  ${y} : ${score[x][y]}
				</#list>
			<#else>
				${x} : ${score[x]} 	
			</#if>
			<#if x_has_next>
				<br>
			</#if>
		</#list>
	</td>
</tr>

?

结果如下:

?

语文 : 80 
数学 : 90 
英语 : 78 
理综 : 物理 : 70 化学 : 67 生物 : 87 

?

?