不做浮躁的人
正在行走的人...
posts - 171,  comments - 51,  trackbacks - 0

环境:使用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>
     &nbsp;
    </#if>
   </td>
  </#list> 
  </tr>
 </#list>
 
<#else>
  &nbsp;
</#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

只有注册用户登录后才能发表评论。


网站导航:
 

<2007年4月>
25262728293031
1234567
891011121314
15161718192021
22232425262728
293012345

常用链接

留言簿(9)

随笔分类(31)

随笔档案(75)

文章分类(1)

文章档案(3)

搜索

  •  

最新评论

阅读排行榜

评论排行榜