0

这应该很简单,但我找不到正确的变量。

我在 struts2 中自定义了一个 Freemarker 模板(简单-> radioMap)

模板的结构基本上是:

<@s.iterator value="parameters.list">
   //Display each item in the list
</@s.iterator>

我想要做的是显示迭代中每个项目的数量。我需要获取每个迭代项的索引,以便我可以打印

0 - Item A
1 - Item B
....

我怎样才能得到这样的索引?谢谢!

4

2 回答 2

0

由于@s.iterator不是标准的 FreeMarker 指令,我不知道它是否将当前索引放入某个变量中(标准指令#list确实如此,但显然他们出于某种原因使用自己的迭代器)。但是,您可以只计算自己,例如:

<#local idx = 0>
<@.iterator ...>
   <#local idx = idx + 1>
   ...
</@.iterator>

请注意,使用#local假设这个“radioMap”是一个宏。如果不是,则必须<#assign ...>改用,然后我希望在其自己的 FreeMarker 命名空间(即,它是#import-ed,而不是#include-d)或在其自己的 FreeMarker中调用此代码Environment,否则您可能会发生名称冲突。

于 2012-05-27T09:23:08.943 回答
0

S2 迭代器标记使用该status属性来命名循环状态变量。

属性标签可用于检索循环状态变量。

http://struts.apache.org/2.x/docs/iterator.html

要使用本机 FM 循环,您可以使用该stack.findValue()方法。

http://struts.apache.org/2.x/docs/freemarker.html

于 2012-05-27T12:36:29.020 回答