在修改的Struts2模板迭代器中查找索引

在修改的Struts2模板迭代器中查找索引,struts2,iterator,freemarker,Struts2,Iterator,Freemarker,这应该很简单,但我找不到正确的变量 我正在struts2(simple->radioMap)中自定义Freemarker模板 模板的结构基本上是: <@s.iterator value="parameters.list"> //Display each item in the list </@s.iterator> 我怎样才能得到这样一个索引? 谢谢 由于@s.iterator不是标准的FreeMarker指令,我不知道它是否将当前索引放入某个变量中(标准指令#l

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

我正在struts2(simple->radioMap)中自定义Freemarker模板

模板的结构基本上是:

<@s.iterator value="parameters.list">
   //Display each item in the list
</@s.iterator>
我怎样才能得到这样一个索引?
谢谢

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

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

...

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

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

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

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

我确实不得不使用
。感谢您提醒我们可能的名称空间冲突。我确保给变量一个适当的名称。我不知道这是否是最合适的解决方案,但它很好地解决了我的问题。
<#local idx = 0>
<@.iterator ...>
   <#local idx = idx + 1>
   ...
</@.iterator>