2010-02-08 3 views
0

Je souhaite ajouter dynamiquement des boutons d'un bean backing à une page JSF (supportant également Rich Faces).Dans JSF - Essayer d'obtenir quelque chose de similaire à "# {bean.run (3)}"

La valeur des boutons doit être déterminée au cours de l'exécution et renvoyée au bean backing lorsque le bouton est enfoncé. (D'où le titre - J'essaie actuellement de faire quelque chose comme "# {beans.run (3)}", c'est-à-dire - définir un paramètre fixe à utiliser en cliquant sur un bouton)

Par exemple, si l'utilisateur crée un bouton (lors de l'exécution) et donne une valeur au bouton. Cette valeur doit être retournée au backing bean pour être analysée.

Ma question - Comment assigner un bouton (le bouton est un composant JSF avec un enfant de support a4j:) avec une valeur à l'exécution? (J'ai essayé d'utiliser a4j: actionParam, mais n'a pas réussi à travailler dehors)

PS - J'ai remanié cette question pour être plus courte et plus au point de la question initiale trop longue

Répondre

3

Il y a un certain nombre de opions:

  • utiliser JSF 2.0
  • utilisation d'extension JBoss EL
  • utilisation <f:setPropertyActionListener value="3" target="#{bean.propety>, où propety est lu plus tard par la méthode run().

    <h:commandButton action="#{bean.run}"> 
        <f:setPropertyActionListener target="#{bean.property}" 
         value="#{pageVariable}" /> 
    </h:commandButton> 
    <!-- pageVariable contains the number you are passing --> 
    
    public class Bean { 
        private int property; // with setters and getters 
        public void run() { 
         // do something with property 
        } 
    } 
    
  • utilisation Facelets fonctions (here's an example pour une telle fonction) (non applicable dans tous les cas)

+0

Merci! Comment évaluer "f: setPropertyActionListener" uniquement lorsque j'appuie sur le bouton auquel il est assigné? – Ben

+0

voir ma réponse mise à jour. – Bozho

+0

Tnx à nouveau. J'ai 2 problèmes avec f: setPropertyActionListener: (1) Je n'utilise pas h: commandButton mais plutôt a4j: support sous une grille de panneaux html. (2) Je voulais ajouter f: setPropertyActionListener à a4j: supporte les enfants mais je n'ai pas pu trouver la représentation de l'objet à créer dans le bean backing. – Ben

Questions connexes