在修改的Struts2模板迭代器中查找索引
这应该很简单,但我找不到正确的变量 我正在struts2(simple->radioMap)中自定义Freemarker模板 模板的结构基本上是:在修改的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
<@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>