我正在尝试显示包含bean对象的列表。 我使用iterator标签来显示列表
/*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没有显示任何内容。怎么了?
答案 0 :(得分:1)
InformeTaquitoscopio必须拥有以下内容: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来说非常重要。