Freemarker For循环

Him*_*dav 4 java freemarker

他们以任何方式根据他们而不是一个一个地遍历列表项吗?我想以1,3,5,7,9和2,4,6,8的顺序遍历一系列字段.我尝试过像这样使用

<#list section.field as field>
 <div class="col1">
 ${field.@label}:<input type="text"/></div>
 <#if field_has_next>
 <div class="col2">
   ${field[field_index+1].@label}:<input type="text"/>
 </div>
 </#if>
</#list>
Run Code Online (Sandbox Code Playgroud)

但它给了我错误.

dde*_*any 5

这是?chunk为了什么(http://freemarker.org/docs/ref_builtins_sequence.html#ref_builtin_chunk):

<#list section.field?chunk(2) as row>
  <#list row as field>
    <div class="col${field_index + 1}">
      ${field.@label}: <input type="text"/>
    </div>
  </#list>
</#list>
Run Code Online (Sandbox Code Playgroud)

否则我不知道你的解决方案有什么错误,但肯定有一个错误,它显示所有字段,但最后一个显示两次.您可以使用类似的东西自由地使用索引

<#assign fields = section.field>
<#assign idx = 0>
<#list 0..999999 as _>
   <#if idx == fields?size><#break></#if>
   ... even column ...
   <#assign idx = idx + 1>

   <#if idx == fields?size><#break></#if>
   ... odd column ...
   <#assign idx = idx + 1>
</#list>
...
Run Code Online (Sandbox Code Playgroud)

但是你看,它并不适合FreeMarker(它非常冗长).