I have the following tree node class:
public abstract class DocumentTreeNode extends TreeNodeImpl implements javax.swing.tree.TreeNode
{
private Boolean isToC;
...
public Boolean isToC()
{
return isToC;
}
public void setToC(Boolean isToC)
{
this.isToC = isToC;
}
}
This is a simple check box indicating whether the document is to be included in whatever or not. However, when trying to reference this from within JSF 2 EL
...
<h:selectBooleanCheckbox value="#{node.isToC}" />
...
I get an exception:
Caused by: javax.el.PropertyNotFoundException: /main.xhtml @541,64 value="#{node.isToC}": The class 'ChapterTreeNode' does not have the property 'isToC'.
(I think I tried almost every combination, at least I felt this way... ;-) )
How do I resolve that boolean property? What needs to be changed?
You should not specify the method name, but just the property name. You need to omit the
is
(andget
andset
) prefix when specifying bean properties.EL will just automatically use the proper getter/setter for the property (note that this indeed means that the physical presence of the instance variable is not necessary). The exception which you got,
basically means that there's no such method as
isIsToc()
orgetIsToc()
(and it has it right).Your second problem is that you used
Boolean
instead ofboolean
. You should then really call the methodgetToC()
orgetIsToC()
instead ofisToC()
. In the latter case, you can just continue using#{node.isToC}
.See also: