Bean属性“firstName”不可读或具有无效的getter方法

时间:2013-04-09 11:28:36

标签: spring

我在ContactController类文件

中有以下方法
public ModelAndView listContacts() { 
    return new ModelAndView("contact", "contact", contactService.listContact()); 
}

我在JSP中迭代这个列表:

<c:if test="${!empty contact}">
<table class="data">
    <tr>
        <th>Name</th>
        <th>Email</th>
        <th>Telephone</th>
        <th>&nbsp;</th>
    </tr>
    <c:forEach items="${contact}" var="contact">
        <tr>
            <td>${contact.lastName}, ${contact.firstName}</td>
            <td>${contact.email}</td>
            <td>${contact.telephone}</td>
            <td><a href="delete/${contact.id}">delete</a></td>
        </tr>
    </c:forEach>
</table>

但我收到以下错误:

  

org.springframework.beans.NotReadablePropertyException:bean类的无效属性“firstName”[java.util.ArrayList]:Bean属性“firstName”不可读或具有无效的getter方法:getter的返回类型是否匹配setter的参数类型?

1 个答案:

答案 0 :(得分:0)

看起来你喜欢让自己的生活变得困难:-)为什么你为不同的东西使用相同的名字。您有一个联系人列表,此列表应命名为contacts(复数形式:它是一个severa联系人列表),而不是contact。然后在循环中,每个单独的联系人都可以命名为contact(单数形式:它是单个联系人实例):

return new ModelAndView("contact", "contacts", contactService.listContact());

<c:forEach items="${contacts}" var="contact">
    <tr>
        <td>${contact.lastName}, ${contact.firstName}</td>
        <td>${contact.email}</td>
        <td>${contact.telephone}</td>
        <td><a href="delete/${contact.id}">delete</a></td>
    </tr>
</c:forEach>