2012-08-14 100 views
0

我是Primefaces新手,我嘗試使用Primefaces 3.3.1中的treeTable。 只有TreeTable的第一條記錄顯示在開頭。然後,當我點擊小圖片展開TreeTable時,沒有任何反應。螢火蟲,我可以SE以下結果:Primefaces TreeNode不擴展

<partial-response> 
    <error> 
     <error-name>class java.lang.StringIndexOutOfBoundException</error-name> 
     <error-message>String index out of range: -1</error-message> 
    </error> 
</partial-response> 

如果我強迫我treetable中與node0.setExpanded(真)擴展,那麼treetable中展開。然後我可以再次崩潰,但我無法擴展它。 在其他文章中,寫道模型和/或bean必須實現Serializable。我嘗試,但它不起作用。

下面,我的模型(什麼將被放置在treetable中的每一條記錄):

public class MyModel{ 
    private String field_1; 
    private String field_2; 
    public MyModel(){}; 
    public MyModel(String field_1, String field_2){ 
     this.field_1 = field_1; 
     this.field_2 = field_2; 
    } 
    //Getters and setters 
}  

下面,JSF託管Bean,它創建treetable中:

@ManagedBean 
@SessionScoped 
public class MyManagedBean{ 
    public TreeNode root; 
} 
public MyManagedBean{ 
    root = new DefaultTreeNode("root",null); 
    TreeNode node0 = new DefaultTreeNode(new MyModel("Field 1", "Field 2"), root); 
    TreeNode sub0 = new DefaultTreeNode(new MyModel("Sub", "Sub"), node0); 
    //node0.setExpanded(true); 
} 
public TreeNode getRoot(){ 
    return root; 
} 

最後,我的JSF文件:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"  "http://www.w3.org/TR/html4/loose.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml" 
     xmlns:h="http://java.sun.com/jsf/html" 
     xmlns:f="http://java.sun.com/jsf/core" 
     xmlns:ui="http://java.sun.com/jsf/facelets" 
     xmlns:p="http://primefaces.org/ui"> 
    <f:view contentType="text/html"> 
     <h:head> 
      <f:facet name="first"> 
       <meta content='text/html; charset=UTF-8' http-equiv="Content-Type"/> 
       <title>PrimeFaces</title> 
      </f:facet> 
     </h:head> 
     <h:body> 
      <p:treeTable value="#{myManagedBean.root}" var="test">  
      <p:column> 
       <f:facet name="header"> 
        Field 1 
       </f:facet> 
       <h:outputText value="#{test.field_1}" /> 
      </p:column> 
      <p:column> 
       <f:facet name="header"> 
        Field 2 
       </f:facet> 
       <h:outputText value="#{test.field_2}" /> 
      </p:column> 
     </p:treeTable> 
    </h:body> 
</f:view> 

非常感謝您的幫助!

+0

沒有人有想法嗎? – 2012-08-17 09:40:56

回答

0

解決了它。我忘了將treeTable包裝在h:form標籤中。現在它工作正常。

+1

我的p:樹已經包裝了不起作用 – Sarz 2014-04-25 12:07:59