在平時(shí)使用 s:iterator 這個(gè)迭代標(biāo)簽,一般我們都是把一個(gè) 相同類型的多個(gè)對(duì)象放入一個(gè)集合當(dāng)中,那么,是否可以放入不相同的對(duì)象來(lái)迭代呢? 日常工作有時(shí)候可能是需要這樣來(lái)簡(jiǎn)化程序的,我今天測(cè)試了一下,好像完全可以
第一步:
我建立了兩個(gè)不同的POJO類,
public class Feng {
private String lou;
private String feng;
}
public class FengFeng {
private String a;
private String b;
} 當(dāng)然需要提供他們的getter和setter方法。
第二步:
在struts2的action中聲明一個(gè)List 屬性
private List li;
也提供setter方法
在相應(yīng)的execute方法中將不同類型的對(duì)象加入li這個(gè)屬性中
Feng f1=new Feng();
f1.setFeng("feng");
f1.setLou("lou");
Feng f2=new Feng();
f2.setFeng("feng1");
f2.setLou("lou1");
FengFeng a1=new FengFeng();
a1.setA("a");
a1.setB("b");
FengFeng a2=new FengFeng();
a2.setA("a1");
a2.setB("b2");
li=new ArrayList();
li.add(f1);
li.add(f2);
li.add(a1);
li.add(a2); 測(cè)試方便,我手工實(shí)例化了
第三步:
在頁(yè)面迭代,也就是最重要的部分,我在s:iterator 中加入了一些判斷,從而實(shí)現(xiàn)了不同類型對(duì)象的迭代
<s:iterator value="li">
<s:if test="feng!=null"><s:property value="feng"/>!!<s:property value="lou"/></s:if>
<s:if test="a!=null"><s:property value="a"/>!!<s:property value="b"/></s:if>
</s:iterator>
頁(yè)面顯示效果如下:
feng!!lou feng1!!lou1 a!!b a1!!b2
哈哈!成功了! 這樣就可以實(shí)現(xiàn)靈活的迭代了,很實(shí)用哦!