我在PrimeFaces 3.3.1的TreeNode
组件中每个节点都有一个复选框,它在javax.el.PropertyNotFoundException
属性中抛出value
。这是我的代码:
<p:tree value="#{CadBean.treeNode}" var="rec">
<p:treeNode>
<h:outputText value="#{rec.codigo}" />
</p:treeNode>
<p:treeNode type="Funcionality" icon="ui-icon16-weblibrary-folderopened">
<p:selectBooleanCheckbox value="#{CadBean.alreadyAssociated(rec.id)}">
<p:ajax event="click" listener="#{CadBean.onrecClicked(rec.id)}" />
</p:selectBooleanCheckbox>
<h:outputText value="#{rec.codigo}" />
</p:treeNode>
<p:treeNode type="Page" icon="ui-icon16-weblibrary-htmlpage">
<p:selectBooleanCheckbox value="#{CadBean.alreadyAssociated(rec.id)}">
<p:ajax event="click" listener="#{CadBean.onrecClicked(rec.id)}" />
</p:selectBooleanCheckbox>
<h:outputText value="#{rec.codigo}" />
</p:treeNode>
<p:treeNode type="System" icon="ui-icon16-weblibrary-computer">
<h:outputText value="#{rec}" />
</p:treeNode>
value="#{CadBean.alreadyAssociated(rec.id)}"
中会抛出异常。
布尔方法是这样的:
public boolean alreadyAssociated(int recId) {
for (Association a : associations) {
if (a.getRec().getId() == recId) {
return true;
}
}
return false;
}
这是例外:
SEVERE: javax.el.PropertyNotFoundException: /s_ca/cadRec.xhtml @54,122 value="#{CadBean.alreadyAssociated(rec.id)}": Property 'alreadyAssociated' not found on type br.com.tsg.web.beans.CadBean
我正在使用Mojarra 2.1.9并且不能在TreeNode中使用selectionMode="checkbox"
,因为我需要两个带有复选框的组件。
感谢。
答案 0 :(得分:0)
解决。我只需要创建一个这样的方法:
public void setAlreadyAssociated(boolean b) {
}
是的,这是一个糟糕的解决方法......但已经解决了。