具有动态列的 Struts2 迭代器

发布于 2024-09-27 13:45:32 字数 430 浏览 3 评论 0原文

想象一个具有三个属性的 POJO“Employee”。

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>

正如您所看到的,我在迭代器中只显示了两列。现在就我而言,如何动态添加迭代器中的字段工资?

这是一个与我的实际情况相关的小例子。有人能提供一些线索吗?

Imagine a POJO "Employee" which has three properties.

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

I have a method that fetches list of Employee. In jsp i display the list with tag.

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

As you can see, I have displayed only two columns inside iterator. Now in my case, how do i add the field salary inside iterator dynamically?

This is small example relevant to my actual situation. Can anyone throw some light?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

锦上情书 2024-10-04 13:45:32

我没有看到任何实际的方法。如果您将视图设置为处理此类动态对象,则可以通过反射来完成,尽管我会推荐 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>

I don't see any practical way. If you set your view up to handle such dynamic objects then it can be done with reflection, although I will recommend Apache BeanUtils.

Say you do something like (not tested):

public class Introspector{
   private BeanMap properties;

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

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

With that done, the Employee class should be able to use it...

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

then in the view you could say...

<s:iterator value="listEmployee">
   <s:iterator value="properties">
      <s:property>
   </s:iterator>
</s:iterator>
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文