2

我正在开发一个 JSF2 Icefaces Web 应用程序。我有以下看法:

<h:dataTable value="#{myFormBB.userRolesBean.userRoleList}" var="row">
    <h:column>
        <ice:selectBooleanCheckbox value="#{row.teamUser}" />

保存上述内容时出现以下异常<ice:selectBooleanCheckbox>

Application caught instance of: javax.faces.component.UpdateModelException
["http-bio-8081"-exec-9] ERROR com.abc.mp.em.common.ui.exception.handler.ExceptionHandler - error
javax.faces.component.UpdateModelException: javax.el.PropertyNotFoundException: /sections/response/myForm.xhtml @599,78 value="#{row.teamUser}": Property 'teamUser' not writable on type boolean
    at javax.faces.component.UIInput.updateModel(UIInput.java:849)
    at javax.faces.component.UIInput.processUpdates(UIInput.java:731)
    at javax.faces.component.UIComponentBase.processUpdates(UIComponentBase.java:1109)
    at javax.faces.component.UIComponentBase.processUpdates(UIComponentBase.java:1109)
    at javax.faces.component.UIComponentBase.processUpdates(UIComponentBase.java:1109)
    at javax.faces.component.UIComponentBase.processUpdates(UIComponentBase.java:1109)

我已经在支持 bean 中正确定义了属性及其 getter 和设置。

protected boolean teamUser;

public boolean isTeamUser() {
    return teamUser;
}

public void setTeamUser(boolean teamUser) {
    this.teamUser = teamUser;
}

这是如何引起的,我该如何解决?我需要使用转换器吗?

4

1 回答 1

2

value="#{row.teamUser}":属性“teamUser”在布尔类型上不可写

这个错误基本上是在告诉那#{row}是一个boolean(或Boolean),而它又确实没有一个teamUser属性。

这反过来表明#{myFormBB.userRolesBean.userRoleList}实际上返回了 aList<Boolean>而不是List<SomeBeanWithTeamUserProperty>。验证并修复您的模型。

于 2013-01-09T19:55:10.800 回答