为什么richfaces树的例子不起作用?

时间:2011-01-09 18:07:21

标签: java jsf richfaces

您好    我为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,我不明白为什么它不起作用。

2 个答案:

答案 0 :(得分:0)

问题是默认情况下,树的switchType是ajax,由于周围的标记,你的ajax请求没有正确地提交给服务器。(似乎是富脸实现的错误,可能会在以后的版本中解决)。 / p>

所以这是解决方案

  1. 使用<rich:tree switchType="server">
  2. 或只删除<h:form>代码
  3. 希望这有帮助

答案 1 :(得分: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>