【发布时间】:2014-06-16 21:45:52
【问题描述】:
在 Struts2 官方文档中,我找到了以下 sn-p 代码:
<s:iterator value="{1,2,3,4,5}" begin="2" end="4" >
<!-- current iteration value (2,3,4) -->
<s:property value="top" />
</s:iterator>
这会遍历值 1 到 5。从那个例子中,我认为 {} 括号之间的任何字符串都将被视为一个数组。
我在 Struts2 中设置了一个变量以包含与上述类似的字符串值,但迭代器始终将其视为 1 个元素而不是元素数组。以下示例均未按预期工作。我使用了%{#} 的所有不同组合。
<s:set var="testa">{6,7,8,9,10}</s:set>
<s:iterator value="testa">
<!-- <s:property/> -->
</s:iterator>
<s:set var="testb">{A,B,C,D,E}</s:set>
<s:iterator value="#testb">
<!-- <s:property/> -->
</s:iterator>
<s:set var="testc">{F,G,H,I,J}</s:set>
<s:iterator value="%{#testc}">
<!-- <s:property/> -->
</s:iterator>
<s:set var="testd">{K,L,M,N,O}</s:set>
<s:iterator value="%{testd}">
<!-- <s:property/> -->
</s:iterator>
我预期的结果是:
<!-- 6 -->
<!-- 7 -->
<!-- 8 -->
<!-- 9 -->
... and so on
但我真正得到的是:
<!-- {6,7,8,9,10} -->
<!-- {A,B,C,D,E} -->
... and so on
我做错了什么?
请注意,我不是在寻找迭代 java 对象列表的方法(我知道如何做到这一点),我真的想迭代数组的文本表示。
【问题讨论】:
标签: arrays jsp struts2 iterator