2010-10-12 64 views
2

想象一下具有三個屬性的POJO「Employee」。帶動態列的Struts2迭代器

public Class Employee{ 
private String id; 
private String name; 
private double salaray; 
} 

我有一個方法,提取員工列表。在jsp中,我使用標籤顯示列表。

<s:iterator value="listEmployee"> 
<s:property value="id"/> 
<s:property value="name"/> 
</s:iterator> 

正如您所看到的,我在迭代器中只顯示了兩列。現在在我的情況下,我如何動態地在迭代器中添加字段薪水?

這是一個與我的實際情況相關的小例子。任何人都可以拋出一些光?

+0

請使用「代碼」按鈕時編輯 – leonbloy 2010-10-12 15:58:45

+0

它不清楚,爲什麼你需要「動態列」:薪水只是一個鬥或者一個數組還是什麼? – leonbloy 2010-10-12 16:00:16

+0

在「渲染/顯示」意義上是動態的。就像說代碼顯示一個包含兩列ID和名稱的表格一樣。現在,在一些行動中,我該如何顯示薪水欄......? – user473279 2010-10-14 12:07:47

回答

0

我沒有看到任何實際的方法。如果您將視圖設置爲處理這種動態對象,那麼可以使用反射來完成,但我會推薦Apache BeanUtils

說你這樣做(未測試):

public class Introspector{ 
    private BeanMap properties; 

    public Introspector(){ 
    myProperties = new BeanMap(this); 
    } 

    public Set getProperties(){ 
    return properties.keySet(); 
    } 
} 

做完這些,Employee類應該能夠使用它...

public class Employee extends Introspector{ 
    private String id; 
    private String name; 
    private double salaray; 
    //getters setters for above properties 
} 

然後在視圖中你可以說...

<s:iterator value="listEmployee"> 
    <s:iterator value="properties"> 
     <s:property> 
    </s:iterator> 
</s:iterator>