2016-02-29 73 views
-1

我使用PrimeFaces 5.0和希望click事件之後創建<p:treeTable>彈出框裏面,但下面的錯誤ManagedBean不聲明一個公共的無參數的構造函數

無法創建託管bean popupTreeTableManagedBean它的表現。發現以下 問題: - 託管bean類 beans.PopupTreeTableManagedBean託管bean popupTreeTableManagedBean未聲明公共無參數 構造函數。 - 託管bean類beans.PopupTreeTableManagedBean for 託管bean popupTreeTableManagedBean未聲明公開 無參數構造函數。

這裏是我的代碼片段

的index.xhtml:

<p:dialog header="" widgetVar="dlg1" minHeight="200"> 
    <p:treeTable value="#{popupTreeTableManagedBean.root}" var="node" style="" > 
     <p:column> 
      <f:facet name="header">Name</f:facet> 
      <h:outputText value="#{node.name}"></h:outputText> 
     </p:column> 

     <p:column> 
      <f:facet name="header">Value</f:facet> 
      <h:inputText value="#{node.value}" style="border-style: hidden;"/> 
     </p:column> 
    </p:treeTable> 
</p:dialog> 

PopupTreeTableManagedBean.java

@ManagedBean 
@SessionScoped 
public class PopupTreeTableManagedBean { 

    private TreeNode root = new DefaultTreeNode("Root Node", null); 
    List<String> selectedParams; 
    TreeNode scanParamsRoot = null; 

    PopupTreeTableManagedBean() { 
     selectedParams = GenrateScanList.getParamList(); 
     createRootAndLeafNodes(); 
    } 

    private TreeNode createRootAndLeafNodes() { 
     TreeNode scanSubRoot = null; 
     int size = selectedParams.size(); 
     TreeNode scanRoot = new DefaultTreeNode(new Document("scanParams", ""), this.root); 
     scanSubRoot = new DefaultTreeNode(new Document("Sub Root", ""), scanRoot); 

     Document relationshipValue = new Document("Hi", ""); 
     TreeNode documentss06 = new DefaultTreeNode(relationshipValue, scanSubRoot); 
     return root; 
    } 

    private DefaultTreeNode getTreeNodeObject() { 
     return new DefaultTreeNode(); 
    } 

    private Document getDocumentObject() { 
     return new Document(null, null); 
    } 

    public TreeNode getRoot() { 
     return root; 
    } 

    public void setRoot(TreeNode root) { 
     this.root = root; 
    } 
} 
+3

錯誤信息的哪部分你不明白? – EJP

回答

4

該錯誤消息說,你需要一個public構造,但是你的構造是包私人。添加public關鍵字應該有所幫助。

+0

另外這個構造函數應該用'@ PostConstruct'方法替換。 – Geinmachi

+0

在bean構造函數中的初始化是完全合法的,除非它不依賴於依賴注入。 – Tiny

相關問題