IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JSF Java Discussion :

Binding sur <h:inputText> dans une boucle


Sujet :

JSF Java

  1. #1
    Membre éclairé Avatar de danyboy85
    Homme Profil pro
    Développeur Java
    Inscrit en
    Décembre 2005
    Messages
    548
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Décembre 2005
    Messages : 548
    Par défaut Binding sur <h:inputText> dans une boucle
    Bonjour,

    j'ai une page où j'affiche plusieurs <h:inputText> dans une <h:dataTable>.

    Voici mon code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <h:dataTable value="#{monManagedBean.maListe}" var="monItem"> 
         <h:column> 
              <h:outputText value="#{monItem.text}" /> 
              <h:inputText binding="#{?}" /> 
         </h:column> 
    </h:dataTable>

    Le problème, c'est que je voudrais appliquer un binding différent à chacun de mes <h:inputText> et je ne vois pas comment faire. Je ne sais pas non pus comment spécifier un ID différent pour chacun de mes <h:inputText>.

    Quelqu'un peut-il m'aider ?

  2. #2
    Expert confirmé
    Avatar de djo.mos
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    4 666
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 4 666
    Par défaut
    Bonjour.
    Tu peux mettre le champ lié à l'inputText dans monItem, par exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <h:dataTable value="#{monManagedBean.maListe}" var="monItem"> 
         <h:column> 
              <h:outputText value="#{monItem.text}" /> 
              <h:inputText binding="#{monItem.input}" /> 
         </h:column> 
    </h:dataTable>
    où input est un champ String que tu ajoutes à monItem.

  3. #3
    Membre éclairé Avatar de danyboy85
    Homme Profil pro
    Développeur Java
    Inscrit en
    Décembre 2005
    Messages
    548
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Décembre 2005
    Messages : 548
    Par défaut
    Et que va contenir cet attribute input ?, une chaine de caractère elle-même du style "#{blabla}" ?

  4. #4
    Expert confirmé
    Avatar de djo.mos
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    4 666
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 4 666
    Par défaut
    Pardonne moi, mais je ne te suis pas là !
    Peux tu exliquer STP ?

  5. #5
    Membre éclairé Avatar de danyboy85
    Homme Profil pro
    Développeur Java
    Inscrit en
    Décembre 2005
    Messages
    548
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Décembre 2005
    Messages : 548
    Par défaut
    Eh bien dans un binding classique, on écrit :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    binding="#{monManagedBean.MonBinding}"
    où "monBinding" est un attribut de la classe MonManagedBean de type UIinput.
    Donc j'ai pensé que si j'utilise #{monItem.input} comme tu le suggère dans ton exemple, l'attribut input allait prendre la valeur "#{monManagedBean.MonBinding}"


    Je me trompe ?

  6. #6
    Expert confirmé
    Avatar de djo.mos
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    4 666
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 4 666
    Par défaut
    Oups ! j'ai fait une bétise !
    je voulais plutôt dire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    <h:dataTable value="#{monManagedBean.maListe}" var="monItem"> 
         <h:column> 
              <h:outputText value="#{monItem.text}" /> 
              <h:inputText value="#{monItem.input}" /> 
         </h:column> 
    </h:dataTable>
    C'est ce qui arrive à force d'utiliser le copier/coller !

    A moins bien sûr que tu ne veuilles vraiment faire un binding au lieu de value ?

  7. #7
    Membre éclairé Avatar de danyboy85
    Homme Profil pro
    Développeur Java
    Inscrit en
    Décembre 2005
    Messages
    548
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Décembre 2005
    Messages : 548
    Par défaut
    Non je ne veux pas forcément utiliser un binding et après test, ta solution a l'air de me convenir.

    Merci de ton aide Modjo et bonne journée !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 1
    Dernier message: 27/09/2007, 15h31
  2. Réponses: 3
    Dernier message: 29/08/2007, 17h17
  3. Afficher sur plusieur ligne du texte dans une balise <td>
    Par G_Kill dans le forum Balisage (X)HTML et validation W3C
    Réponses: 5
    Dernier message: 02/12/2006, 08h50
  4. Réponses: 14
    Dernier message: 25/06/2006, 19h18
  5. Réponses: 3
    Dernier message: 06/07/2004, 10h21

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo