2012-01-09 109 views
2

尽管发现了很多其他这样的问题,并花费了大量的时间,但我无法弄清楚我的迭代器出了什么问题。Struts迭代器不工作

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

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

你可以显示操作代码吗?你是否尊重'salaryDetail'的getter和setter? – 2012-01-09 12:09:16

回答

1

似乎你还没有定义或公共的getter一些问题与您action.either为你列出你没有正确使用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> 

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

+0

谢谢,你是对的,我没有公共的getter,就这些。我不知道我是如何错过的。可能是在错误的地方寻找问题。 – kanishk 2012-01-10 05:24:57