主要是在<s:iterator>
中有没有指定var的一点特性。
1、指定了var,先看下面代码(students是action的属性):
<s:iterator value="students" var="stu">
<s:property value="#stu.name"/>-
<s:property value="#stu.age"/>-
<s:property value="#stu.gender"/><br>
</s:iterator>
网页显示数据如下:
朱- 23- 女
吴- 27- 男
旺达- 28- 男
旺妞- 38- 女
利用<s:debug/>
查看根栈和ActionContext的Map中数据。
在Map中发现:stu ognl.Student@4e53a0d2
2、没有var,再看下面代码:
<s:iterator value="students">
<s:property/>---<s:property value="name"/><br>
<s:debug/>
</s:iterator>
网页结果显示:
ognl.Student@77a1ae7a---朱
ognl.Student@62c5bc39---吴
ognl.Student@6977a6c2---旺达
ognl.Student@2a312016---旺妞
根栈中数据:
显然,不指定var时,会将要遍历的集合中每个
元素压入根栈栈顶。