我正在使用速度1.7并且在foreach循环中我想打印计数。在模板中,我在#foreach / #end section中有以下字符串:
Count: $foreach.count
并期望在渲染结果中看到类似
的内容Count: 1
...
Count: 2
...
但我看到的只有:
Count: $foreach.count
...
Count: $foreach.count
...
任何想法我做错了什么?
答案 0 :(得分:23)
$foreach.count
和$counter
都不适合我。
This answer建议使用$velocityCount
,这对我有用。
答案 1 :(得分:9)
您的代码是部分的,我们没有看到foreach指令。
否则,我知道foreach循环有一个名为$counter
的内置变量,虽然在指南中它们引用了$foreach.count
答案 2 :(得分:9)
我试过$counter
& $foreach.count
但这些都不适合我。
但是,$velocityCount
标记有效,以下是示例。
输入代码:
#foreach($entry in $entries)
<p>In for Loop count is : $velocityCount</p>
#end
<强>输出:强>
In for Loop count is : 1
In for Loop count is : 2
In for Loop count is : 3
答案 3 :(得分:6)
我不知道为什么名为$ count的foreach循环内置变量不能用作指南引用。但$ velocityCount对我有效。
在velocity.properties文件中有一个名为directive.foreach.counter.name的属性是velocityCount,因此默认的$ count变量可能无效。
答案 4 :(得分:2)
k.honsalis答案已被弃用。
此时您只能使用$ velocityCount,即使文档将引用已弃用的方法。
#foreach($item in $items)
counter 0: $foreach.index
counter 1: $foreach.count
counter 2: $counter
counter 3: $velocityCount
#end
Output:
$foreach.index
$foreach.count
$counter
1
答案 5 :(得分:1)
默认变量是VelocityCount,但是您可以根据需要更改变量名称和初始值(仅在2.0版之前)。
VelocityEngine engine = new VelocityEngine();
engine.setProperty("directive.foreach.counter.name", "velocityCount");
engine.setProperty("directive.foreach.counter.initial.value", 1);
http://people.apache.org/~henning/velocity/htmlsingle/VelocityUsersGuide.html
答案 6 :(得分:0)
$velocityCount
对我有用,我使用的是速度1.5 $foreach.count
&amp; $counter
答案 7 :(得分:0)
我目前正在像这样格式化我的 email_html.vm
。
注意,我正在使用
#set( $count = 1 )
和
#set( $count = $count + 1 )
<html>
<body>
<table style="border: 1px solid black; border-collapse: collapse">
#set( $count = 1 )
#foreach( $film in $filmList )
<tr>
<td colspan=2 style="background: bisque; text-align: center"><b>Movie $count</b></td>
</tr>
<tr>
<th style="border: 1px solid black; border-collapse: collapse; padding: 5px; text-align: left">Title</th>
<td style="border: 1px solid black; border-collapse: collapse; padding: 5px; text-align: left"> $film.getTitle() </td>
</tr>
<tr>
<th style="border: 1px solid black; border-collapse: collapse; padding: 5px; text-align: left">Synopsis</th>
<td style="border: 1px solid black; border-collapse: collapse; padding: 5px; text-align: left"> $film.getSynopsis() </td>
</tr>
<tr>
<th style="border: 1px solid black; border-collapse: collapse; padding: 5px; text-align: left">Trailer</th>
<td style="border: 1px solid black; border-collapse: collapse; padding: 5px; text-align: left"> $film.getTrailerLink() </td>
</tr>
<tr>
<th style="border: 1px solid black; border-collapse: collapse; padding: 5px; text-align: left">More Information</th>
<td style="border: 1px solid black; border-collapse: collapse; padding: 5px; text-align: left">
https://www.landmarktheatres.com/$film.getMoreInfoLink() </td>
</tr>
#set( $count = $count + 1 )
#end
</table>
</body>
</html>
输出