尽管发现了许多其他类似的问题,并且花了很多时间,但我无法弄清楚迭代器出了什么问题。
我有一个对象列表,我想迭代它并在文本字段中显示每个对象的各种属性。我在下面的代码中设置了迭代器,但不知何故没有行出现。
这是jsp:
<s:form theme="simple" id="salaryDetails" name="salaryDetails">
<table>
<tr>
<td>Name</td>
<td>Basic</td>
//etc//
</tr>
<s:iterator value="salaryDetail" var="salaries">
<tr>
<td><s:textfield name="emplName" value="%{employeeCode}"/></td>
<td><s:textfield name="basic" value="%{basic}"/></td>
</tr>
</s:iterator>
</table>
</s:form>
此表单的输出只是带标题的行,而我希望预先填充一些数据的文本字段行。迭代器似乎不起作用。我确信该列表包含数据,因为我能够在操作类的控制台上打印它。
请建议!!
真的很紧急。
由于
答案 0 :(得分:1)
您的操作似乎存在一些问题。您没有为您列出公共getter,或者您没有正确使用Bean属性。 快速运行您的示例对我来说工作正常,这里是示例代码
public classDemoAction extends ActionSupport{
private List<SalaryDetail> salaryDetail;
// getter ans setter for this
public String execute() throws Exception{
SalaryDetail detail=new SalaryDetail();
detail.setName("a");
salaryDetail=new ArrayList<SalaryDetail>();
SalaryDetail detail1=new SalaryDetail();
detail1.setName("a");
salaryDetail.add(detail);
salaryDetail.add(detail1);
return SUCCESS;
}
}
这是jsp代码
<s:form theme="simple" id="salaryDetails" name="salaryDetails">
<table>
<tr>
<td>Name</td>
<td>Basic</td>
//etc//
</tr>
<s:iterator value="salaryDetails">
<tr>
<td><s:textfield name="emplName" value="%{name}"/></td>
</tr>
</s:iterator>
</table>
只是交叉检查你的代码有一些错字或可能与命名
不一致