你好
我已经为richfaces树标记编写了一个简单的示例,但是它仅扩展了根节点(但没有将它们折叠回去)
xhtml代码:

   <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,但看不到为什么它不起作用。

最佳答案

问题是默认情况下,树的switchType是ajax,由于周围的标签,您的ajax请求没有正确提交到服务器(似乎是一个丰富的Faces实现的错误,以后的发行版中可能会解决)。

所以这是解决方案


使用<rich:tree switchType="server">
或只是删除<h:form>标签


希望这可以帮助

10-06 12:41
查看更多