Java Velocity循环每3项添加一个div
我正在使用下面的foreach循环Java Velocity循环每3项添加一个div,java,loops,foreach,velocity,Java,Loops,Foreach,Velocity,我正在使用下面的foreach循环 #foreach( $product in $allProducts ) <p>$product</p> #end #foreach($allProducts中的产品) $product #结束 得到 <p>something</p> <p>something</p> <p>something</p> <p>something</p&g
#foreach( $product in $allProducts )
<p>$product</p>
#end
#foreach($allProducts中的产品)
$product
#结束
得到
<p>something</p>
<p>something</p>
<p>something</p>
<p>something</p>
<p>something</p>
<p>something</p>
什么
某物
某物
某物
某物
某物
是否可以在Velocity中每3个项目包装一个div?例如,获得以下结果:
<div>
<p>something</p>
<p>something</p>
<p>something</p>
</div>
<div>
<p>something</p>
<p>something</p>
<p>something</p>
</div>
某物
某物
某物
某物
某物
某物
我尝试在foreach循环中使用
#if($velocityCount%3==0)
,但不起作用。我不熟悉Velocity,因此我的语法可能已关闭,但可以使用for
循环而不是foreach
:
<div>
for(int i=0;i<products.size;i++){
<p>$products[i]</p>
if(i%3==0){
</div>
<div>
}
}
</div>
对于(int i=0;i,在将产品块传递给velocity之前,最好先用java代码创建产品块。我的意思是创建一个包含列表的ProductBlock类,用java将产品分组为产品块,将产品块列表传递给velocity模板,然后像这样使用它
#foreach( $productBlock in $allProductBlocks )
<div>
#foreach( $product in $productBlock.products )
<p>$product</p>
#end
</div>
#end
#foreach($productBlock中的$productBlock)
#foreach($productBlock.products中的product)
$product
#结束
#结束
这将减少模板逻辑,这通常是一个很好的观点。您没有告诉我们您使用的是哪个Velocity版本。$velocityCount
在最新版本中不再存在(至少在1.7.x中)。请尝试使用$foreach.index
:
#foreach( $product in $allProducts )
#if( $foreach.index %3 == 0 )
#if( !$foreach.first )
</div>
#end
<div>
#end
<p>$product</p>
#if( $foreach.last )
</div>
#end
#end
#foreach($allProducts中的产品)
#如果($foreach.index%3==0)
#如果(!$foreach.first)
#结束
#结束
$product
#如果($foreach.last)
#结束
#结束
如果您不熟悉Velocity,为什么要回答这个问题?!Velocity中没有indexeu的ad for循环,但您可以访问foreach循环计数器。