环境:使用fm是2.3.9,webwork2.2.4(使用切换语法):
一:作为components组件的参数如果值为字符串,则需要在字符串上加上单引号。
<ww:component template="checkboxlist_portraitCols.ftl">
<ww:param name="name" value="'test'" /><!--注意单引号-->
<ww:param name="colCnt" value="4" />
<ww:param name="list" value="{'1','2','3','4','5','6'}" />
</ww:component>
二:终于理解freemaker的多值类型。
<#if (parameters.list?size%parameters.colCnt)?int==0>:求余数是否为0,必须加上内置方法int。
freemaker内置了chunk分块的方法,但是我始终没有想到怎么将这个快按纵向进行排列。横向好说,直接按行输出。因此写下列模板代码来实现。
<#assign itemCount = 0/>
<#if parameters.list??>
<#if (parameters.list?size%parameters.colCnt)?int==0>
<#assign rowCnt=(parameters.list?size/parameters.colCnt)?int/>
<#else>
<#assign rowCnt=(parameters.list?size/parameters.colCnt)?int+1/>
</#if>
<#assign width=(100/parameters.colCnt)?int>
<#assign itemCount = itemCount + 1/>
<#list 0..rowCnt-1 as row>
<tr>
<#list 0..parameters.colCnt?int-1 as col>
<#assign itemCount = itemCount + 1/>
<#if row==0 && col<parameters.colCnt-1 >
<td width='${width}%'>
<#else>
<td>
</#if>
<#if row+col*rowCnt<parameters.list?size >
<#assign item=parameters.list[row+col*rowCnt] />
<#if parameters.listKey??>
<#assign itemKey = item[parameters.listKey]/>
<#else>
<#assign itemKey = item/>
</#if>
<#if parameters.listValue??>
<#assign itemValue = item[parameters.listValue]/>
<#else>
<#assign itemValue = item/>
</#if>
<#assign itemKeyStr=itemKey.toString() />
<input type="checkbox" name="${parameters.name?html}" value="${itemKeyStr?html}" id="${parameters.name?html}-${itemCount}"<#rt/>
<#if tag.contains(parameters.nameValue, itemKey)>
checked="checked"<#rt/>
</#if>
<#if parameters.disabled!(false)>
disabled="disabled"<#rt/>
</#if>
/>
<label for="${parameters.name?html}-${itemCount}" class="checkboxLabel">${itemValue?html}</label>
<#else>
</#if>
</td>
</#list>
</tr>
</#list>
<#else>
</#if>
jsp引用页面测试代码:
<table width="80%">
<ww:component template="checkboxlist_portraitCols.ftl">
<ww:param name="name" value="'test'" />
<ww:param name="colCnt" value="4" />
<ww:param name="list" value="{'1','2','3','4','5','6'}" />
</ww:component>
</table>
posted on 2007-04-21 18:21
不做浮躁的人 阅读(1758)
评论(0) 编辑 收藏 所属分类:
freemarker