迭代列表</html:checkbox>时,无法使用<html:checkbox property =“...”>访问属性

时间:2010-06-17 11:19:49

标签: java jsp struts struts-1 html

在我的Struts表单中,我有一个列表。在JSP中,我像这样迭代它:

<c:forEach items="${MyForm.types}" var="type">
    <tr>
        <td>${type.name}</td>
        <td>${type.forced}</td>
        <td>${type.receive}</td>
        <html:checkbox property="type.receive" />
    </tr>
</c:forEach>

现在<html:checkbox无效。我总是收到以下错误:

Caused by: javax.servlet.jsp.JspException: No getter method for property type.receive of bean org.apache.struts.taglib.html.BEAN

但实际上我的表单类中有这个属性的getter。它是这样写的:

public Boolean getReceive() {
  return receive;
}

当我删除复选框时,也可以在上面的<td> - 标签中显示该属性,因此我不知道问题出在哪里。

也许我以错误的方式访问它?

3 个答案:

答案 0 :(得分:0)

struts Action表单中的所有单个属性类型都应该是String.You必须将cbx_uebernehmen定义为String Type。

答案 1 :(得分:0)

我认为你的getter方法应该是这样的(是......而不是get ...):

public Boolean isCbx_uebernehmen() {
  return cbx_uebernehmen;
}

应该那样工作。如果仍然没有,请尝试将返回数据类型从Boolean更改为boolean

答案 2 :(得分:0)

我现在这样做:

<c:forEach items="${MyForm.testList}" var="testElement" varStatus="status">
    <html:checkbox property="testList[${status.count-1}].checkboxValue" />
</c:forEach>

感谢this question