在平时使用 s:iteraTor 这个迭代标签,一般我们都是把一个 相同类型的多个对象放入一个集合当中,那么,是否可以放入不相同的对象来迭代呢? 日常工作有时候可能是需要这样来简化程序的,我今天测试了一下,好像完全可以
第一步:
我建立了两个不同的POJO类,
public class Feng {<br />private String lou;<br />private String feng;<br />}<br />public class FengFeng {<br />private String a;<br />private String b;<br />}
当然需要提供他们的getter和setter方法。
第二步:
在struts2的action中声明一个List 属性
private List li;
也提供setter方法
在相应的execute方法中将不同类型的对象加入li这个属性中
Feng f1=new Feng();<br /> f1.setFeng("feng");<br /> f1.setLou("lou");<br /> Feng f2=new Feng();<br /> f2.setFeng("feng1");<br /> f2.setLou("lou1");<br /> FengFeng a1=new FengFeng();<br /> a1.setA("a");<br /> a1.setB("b");<br /> FengFeng a2=new FengFeng();<br /> a2.setA("a1");<br /> a2.setB("b2");<br /> li=new ArrayList();<br /> li.add(f1);<br /> li.add(f2);<br /> li.add(a1);<br /> li.add(a2);
测试方便,我手工实例化了
第三步:
在页面迭代,也就是最重要的部分,我在s:iteraTor 中加入了一些判断,从而实现了不同类型对象的迭代
<s:iteraTor value="li"><br /><s:if test="feng!=null"><s:property value="feng"/>!!<s:property value="lou"/></s:if><br /><s:if test="a!=null"><s:property value="a"/>!!<s:property value="b"/></s:if><br /></s:iteraTor>
页面显示效果如下:
feng!!lou feng1!!lou1 a!!b a1!!b2
哈哈!成功了! 这样就可以实现灵活的迭代了,很实用哦!
其实,每个人都是幸福的。只是,你的幸福,常常在别人眼里。