2013-04-11 3 views
0

У меня есть один флажок для каждого узла в TreeNode компоненте PrimeFaces 3.3.1, который бросает javax.el.PropertyNotFoundException в свой атрибут value. Вот мой код:PropertyNotFoundException в SelectBooleanCheckbox

<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 и не могут использовать selectionMode="checkbox" в TreeNode, потому что я Вам понадобится еще два компонента с флажком.

Спасибо.

+0

Какой сервер вы используете? – Thihara

+2

value = "# {CadBean.alreadyAssociated (rec.id)}", так что если вы отправляете, где будет храниться переменная? –

+0

Ссылка: http://stackoverflow.com/questions/7580167/are-both-getters-and-setters-mandatory-in-jsfs-managed-beans –

ответ

0

Решено. Мне просто нужно было создать такой метод:

public void setAlreadyAssociated(boolean b) { 
} 

Да, это плохо обходное решение ... но решилось.

Смежные вопросы