Java 速度循环每 3 个项目添加 div
Java Velocity loop add div around every 3 items
我正在使用以下 foreach 循环
#foreach( $product in $allProducts )
<p>$product</p>
#end
获得
<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>
最好在 java 代码中创建乘积块,然后再将它们传递给 velocity。我的意思是创建一个包含 List<Product>
的 ProductBlock class,将产品分组到 java 中的产品块,将产品块列表传递给速度模板并像
#foreach( $productBlock in $allProductBlocks )
<div>
#foreach( $product in $productBlock.products )
<p>$product</p>
#end
</div>
#end
它会导致更少的模板逻辑,这通常是一个好点。
您没有告诉我们您使用的是哪个 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 循环
#foreach( $product in $allProducts )
<p>$product</p>
#end
获得
<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>
最好在 java 代码中创建乘积块,然后再将它们传递给 velocity。我的意思是创建一个包含 List<Product>
的 ProductBlock class,将产品分组到 java 中的产品块,将产品块列表传递给速度模板并像
#foreach( $productBlock in $allProductBlocks )
<div>
#foreach( $product in $productBlock.products )
<p>$product</p>
#end
</div>
#end
它会导致更少的模板逻辑,这通常是一个好点。
您没有告诉我们您使用的是哪个 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