3 votes

Pourquoi l'exemple de l'arbre Richfaces ne fonctionne-t-il pas ?

Bonjour J'ai écrit un exemple simple pour la balise richfaces tree, mais il ne développe que les nœuds racines (mais ne les réduit pas en arrière). le code 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>

code du haricot java :

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;
   }
}

config :

   <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>

J'utilise myfaces 1.2.8 et richfaces 3.3.2.SR1, et je ne vois pas pourquoi cela ne fonctionne pas.

0voto

Sinto K Itteera Points 552

Le problème est que, par défaut, le type de commutation de l'arbre est ajax et que vos requêtes ajax ne sont pas correctement soumises au serveur en raison de la balise environnante.

Voici donc la solution

  1. utiliser <rich:tree switchType="server">
  2. ou simplement retirer le <h:form> étiquette

J'espère que cela vous aidera

0voto

Rafael Almeida Points 578

J'ai eu le même problème avec faces 3.3.3, en mettant facelets.BUILD_BEFORE_RESTORE à false dans mon web.xml.

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

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X