![](/img/trans.png)
[英]javax.el.PropertyNotFoundException with CompositeComponent?
[英]javax.el.PropertyNotFoundException when trying to resolve Boolean properties in EL
我有以下樹節點類:
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;
}
}
這是一個簡單的復選框,指示文檔是否包含在任何內容中。 但是,當試圖從JSF 2 EL中引用它時
...
<h:selectBooleanCheckbox value="#{node.isToC}" />
...
我得到一個例外:
引起:javax.el.PropertyNotFoundException:/main.xhtml @ 541,64 value =“#{node.isToC}”:類'ChapterTreeNode'沒有屬性'isToC'。
(我想我幾乎嘗試了所有組合,至少我覺得這樣...... ;-))
如何解決該布爾屬性? 需要改變什么?
您不應指定方法名稱,只能指定屬性名稱。 在指定bean屬性時,需要省略is
(和get
和set
)前綴。
<h:selectBooleanCheckbox value="#{node.toC}" />
EL將自動為屬性使用正確的getter / setter(請注意,這確實意味着實例變量的物理存在不是必需的)。 你得到的例外,
引起:javax.el.PropertyNotFoundException:/main.xhtml @ 541,64 value =“#{node.isToC}”:類'ChapterTreeNode'沒有屬性'isToC'。
基本上意味着沒有像isIsToc()
或getIsToc()
這樣的方法(並且它正確)。
你的第二個問題是你使用Boolean
而不是boolean
。 然后,您應該真正調用方法getToC()
或getIsToC()
而不是isToC()
。 在后一種情況下,您可以繼續使用#{node.isToC}
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.