2011-01-09 68 views
3

嗨 我已經寫了RichFaces的樹標記一個簡單的例子,但它只是擴展根節點(但不垮他們回) 的XHTML代碼:爲什麼richfaces樹示例不起作用?

<rich:panel id="unitTest" width="240" height="400"> 
     <h:form> 
     <rich:tree> 
     <rich:recursiveTreeNodesAdaptor roots="#{tree.nodes}" var="item" nodes="#{item.nodes}" > 
      <rich:treeNode> 
       <h:outputText value="#{item}"/> 
      </rich:treeNode> 
     </rich:recursiveTreeNodesAdaptor> 
     </rich:tree> 
     </h:form> 
    </rich:panel> 

的java bean代碼:

import java.util.*; 

public class UnitTreeNode 
{ 
    String name; 
    List<UnitTreeNode> children; 

    public UnitTreeNode() 
    { 
     this.name=""; 
    } 
    public UnitTreeNode(String name) 
    { 
     this.name=name; 
    } 
    public List<UnitTreeNode> getNodes() 
    { 
     if(children==null) 
     { 
     children=new ArrayList<UnitTreeNode>(); 
     for(int i=0;i<3;i++) 
      children.add(new UnitTreeNode(name+i)); 
     } 
     return children; 
    } 
    public String toString() 
    { 
     return name; 
    } 
} 

配置:

<managed-bean> 
     <managed-bean-name>tree</managed-bean-name> 
     <managed-bean-class>UnitTreeNode</managed-bean-class> 
     <managed-bean-scope>session</managed-bean-scope> 
    </managed-bean> 

我使用的MyFaces 1.2.8和RichFaces的3.3.2.SR1,我不明白爲什麼它不起作用。

回答

0

問題是默認樹switchType是ajax和你的ajax請求沒有得到正確提交到服務器由於周圍的標籤(似乎是一個豐富的面部實現的bug,它可能會解決與更高版本)。

所以這裏是解決

  1. 使用<rich:tree switchType="server">
  2. 或只是刪除<h:form>標籤

希望這有助於

0

我有同樣的問題上面臨3.3.3,在我的web.xml中設置facelets.BUILD_BEFORE_RESTORE爲false。

<context-param> 
    <param-name>facelets.BUILD_BEFORE_RESTORE</param-name> 
    <param-value>false</param-value> 
</context-param>