我正在开发一个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;
}
这是如何引起的,我该如何解决?我需要使用转换器吗?
答案 0 :(得分:2)
value =“#{row.teamUser}”:属性'teamUser'在类型boolean上不可写
此错误基本上告诉我#{row}
是boolean
(或Boolean
),而teamUser
确实没有#{myFormBB.userRolesBean.userRoleList}
属性。
这反过来表明List<Boolean>
实际上返回了List<SomeBeanWithTeamUserProperty>
而不是{{1}}。验证并修复您的模型。