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