这使用相同的代码 primefaces tree control
@ManagedBean( name = "theName", eager = true)
第一个问题是为什么不能识别“名字”和“渴望”。 Eclipse建议我将任一参数更改为“value” - 所以不确定那里是什么。
然后,我小心翼翼地在必要时大写并创建我的bean
public class TreeBean implements Serializable {
并在我的xhtml
中引用它<h:form id="mainForm">
<p:tree id="treeSingle" value="#{treeBean.root}" var="node"
selectionMode="single"
selection="#{treeBean.selectedNode}">
(注意班级名称的大写)。
输出只显示一个窄条。 System.out.println(“构造函数名为”)表明该bean未知。为了支持这一点,如果按下示例中编码的按钮(顶部提供的链接),我会收到错误
Jan 13, 2014 12:19:26 AM com.sun.faces.context.AjaxExceptionHandlerImpl handlePartialResponseError
SEVERE: javax.el.PropertyNotFoundException: /HelloWorld.xhtml @23,50 selection="#{treeBean.selectedNode}": Target Unreachable, identifier 'treeBean' resolved to null
at com.sun.faces.facelets.el.TagValueExpression.setValue(TagValueExpression.java:133)
我现在已经没有想法可能会出现什么问题。是否有任何进一步调试的方法或任何人对eager / name事物有任何想法以及导致Bean类(我假设)不被看见的原因。
提前致谢。 凯文
答案 0 :(得分:3)
@ManagedBean(name="treeBean")
@SessionScoped // or whatever scope you would like to use
public class TreeBean implements Serializable {
....
XHTML中的用法:...="#{treeBean.root}"
或
@ManagedBean(name="xyz")
@SessionScoped // or whatever scope you would like to use
public class TreeBean implements Serializable {
....
XHTML中的用法:...="#{xyz.root}"
bean name只是地图的一个键,您可以随意命名
bean的范围应来自包javax.faces.bean
即。对于您必须导入的 sessionscoped bean
import javax.faces.bean.SessionScoped;
和managedBean Annotation
import javax.faces.bean.ManagedBean;
答案 1 :(得分:-1)