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

 

相关推荐