1

我正在尝试显示一个包含 bean 对象的列表。我正在使用迭代器标签来显示列表

/*JSP*/
<s:iterator value="lInfTaq" var="res">
<tr>
    <td><s:property value="#res.numEjercicio"/></td>
    <td><s:property value="#res.numOKs()"/></td>
    <td><s:property value="#res.numKOs"/></td>
</tr>
</s:iterator>


/*ACTION*/
public class TaquitoscopioAction extends ActionSupport{
 /* . . . */
List <InformeTaquitoscopio> lInfTaq;
/* Filled the list */


/*BEAN*/
public class InformeTaquitoscopio {
private String numEjercicio;
private String numOKs;
private String numKOs;
public InformeTaquitoscopio() {
  super();
  // TODO Auto-generated constructor stub
}
public InformeTaquitoscopio(String numEjercicio, String numOKs, String numKOs) {
super();
this.numEjercicio = numEjercicio;
this.numOKs = numOKs;
this.numKOs = numKOs;
}
/*getters and setters*/
}

但是jsp不显示任何东西。怎么了?

4

1 回答 1

1

InformeTaquitoscopio 必须有 getter:numEjercicio、numOKs、numKOs 或公开属性。该操作需要 lInfTaq 的 getter 或该属性是公共的。

然后以下应该工作:

<s:iterator value="lInfTaq">
<tr>
    <td><s:property value="numEjercicio"/></td>
    <td><s:property value="numOKs"/></td>
    <td><s:property value="numKOs"/></td>
</tr>
</s:iterator>

就个人而言,但我倾向于不喜欢 struts2 标签上的 var 属性。它告诉我您将要覆盖一个变量或将其移动到另一个范围。如果您没有嵌套迭代器,则通常不需要迭代器上的 var 属性。这种方式对眼睛来说当然更容易。假设您了解您正在使用堆栈,这对于 struts2 来说是非常基础的。

于 2013-05-04T20:50:20.250 回答