Java 循环自由标记

Java 循环自由标记,java,freemarker,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[

他们是否有基于自己的而不是逐个遍历列表项的方法?我想遍历一个字段列表,按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>

${field.@label}:
${field[field_index+1]。@label}:

但它给了我一个错误。

这就是
?chunk
的作用():


${field.@label}:
否则,我不知道您的解决方案会出现什么错误,但肯定有一个bug,它会显示所有字段,但最后一个字段会显示两次。你可以自由地使用索引,比如

<#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>
...

... 偶数列。。。
... 奇数列。。。
...

但正如您所看到的,它并不真正适合FreeMarker(它非常冗长)。

谢谢您的详细回答。这很有帮助。
<#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>
...