Struts2 如何迭代struts 2中的对象列表

Struts2 如何迭代struts 2中的对象列表,struts2,Struts2,我是struts2新手,面临一个问题 我有以下数据结构 class Employee extends actionsupport{ Private List<Address> address; ....getters and setters } class Address { private String street_name; Private City_name; ......and so on ... getters and setters } class Em

我是struts2新手,面临一个问题

我有以下数据结构

class Employee extends actionsupport{

Private List<Address> address;


....getters and setters
}

class Address {
private String street_name;
Private City_name;
......and so on 

... getters and setters

}
class Employee扩展了actionsupport{
私人名单地址;
…接球手和接球手
}
班级地址{
私家字符串街道名称;
私人城市名称;
等等
…能手和二传手
}

如何使用
标记在JSP中迭代此列表。我尝试了许多组合,但在某种程度上它对我不起作用。

我认为最好的方法是使用Struts2标记,它需要提供集合作为数据源进行迭代

<s:iterator value="address">
  <s:property value="street_name"/>
  <s:property value="City_name"/>
  //so on
</s:iterator>

//诸如此类

当迭代器对地址进行迭代器时,它会将对象(在您的情况下是地址)放在值堆栈的顶部,您可以直接引用这些属性,如上所述

我认为最好的方法是使用Struts2标记,它需要提供集合作为迭代器遍历的数据源

<s:iterator value="address">
  <s:property value="street_name"/>
  <s:property value="City_name"/>
  //so on
</s:iterator>
<s:iterator value="%{address}" var="addr">
    <s:property value="%{street_name}"/>
    <s:property value="#addr.street_name"/>
</s:iterator>

//诸如此类
当迭代器对地址进行迭代器时,它将把对象(在您的情况下是地址)放在值堆栈的顶部,您可以直接引用这些属性,如上所述


<s:iterator value="%{address}" var="addr">
    <s:property value="%{street_name}"/>
    <s:property value="#addr.street_name"/>
</s:iterator>


IMO收藏应使用复数名称命名(例如地址)。这使事情更容易思考。此外,即使只是在描述一个问题时,最好使用正确的语法和命名。@DaveNewton您是否有意使用单数“thing”?真有趣。@rees我说了;)我的一些评论很微妙——谢谢你的注意!在IMO中,集合应使用复数名称命名(例如地址)。这使事情更容易思考。此外,即使只是在描述一个问题时,最好使用正确的语法和命名。@DaveNewton您是否有意使用单数“thing”?真有趣。@rees我说了;)我的一些评论很微妙——谢谢你的注意!