2010-10-12 4 views
2

Представьте себе POJO «Сотрудник», который имеет три свойства.Итератор Struts2 с динамическими столбцами

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

У меня есть метод, который выбирает список Employee. В jsp i отобразится список с тегом.

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

Как вы можете видеть, я отобразил только два столбца внутри итератора. Теперь, в моем случае, как я могу добавить полевую зарплату внутри итератора динамически?

Это небольшой пример, имеющий отношение к моей реальной ситуации. Может ли кто-нибудь пролить свет?

+0

пожалуйста используйте кнопку «код» при редактировании – leonbloy

+0

это не понятно, почему вам нужно «динамические столбцы»: зарплата просто доу или массив или что? – leonbloy

+0

динамический в смысле «рендеринга/отображения». Например, код отображает таблицу с двумя столбцами id и name. Теперь о некоторых действиях, как мне отобразить столбец зарплаты ...? – user473279

ответ

0

Я не вижу практического пути. Если вы настроите представление на такие динамические объекты, то это можно сделать с отражением, хотя я порекомендую Apache BeanUtils.

Допустим, вы делаете что-то вроде (не проверено):

public class Introspector{ 
    private BeanMap properties; 

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

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

Сделав это, класс Сотрудник должен быть в состоянии использовать его ...

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> 
Смежные вопросы