带有动态列的Struts2迭代器

时间:2010-10-12 11:37:20

标签: struts2

想象一下POJO“员工”,它有三个属性。

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

我有一个获取Employee列表的方法。在jsp中,我显示带有标记的列表。

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

如您所见,我在迭代器中只显示了两列。现在在我的情况下,我如何动态地在迭代器中添加字段工资?

这是与我的实际情况相关的小例子。任何人都可以投光吗?

1 个答案:

答案 0 :(得分: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>