Struts迭代器无法正常工作

时间:2012-01-09 12:07:05

标签: jsp struts2 iterator

尽管发现了许多其他类似的问题,并且花了很多时间,但我无法弄清楚迭代器出了什么问题。

我有一个对象列表,我想迭代它并在文本字段中显示每个对象的各种属性。我在下面的代码中设置了迭代器,但不知何故没有行出现。

这是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>

此表单的输出只是带标题的行,而我希望预先填充一些数据的文本字段行。迭代器似乎不起作用。我确信该列表包含数据,因为我能够在操作类的控制台上打印它。

请建议!!

真的很紧急。

由于

1 个答案:

答案 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>

只是交叉检查你的代码有一些错字或可能与命名

不一致