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 :

[JSF] id d'un tag à calculer dynamiquement


Sujet :

JSF Java

  1. #1
    Membre chevronné
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    946
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 946
    Points : 1 849
    Points
    1 849
    Par défaut [JSF] id d'un tag à calculer dynamiquement
    Bonjour,

    J'essaye d'afficher un tableau (tag dataTable) où chaque ligne correspond à un enregistrement. Chaque ligne devrait comporter un bouton permettant de consulter le détail d'un enregistrement. Et c'est là que ça coince.

    J'utilise <h:commandButton /> pour créer ce bouton. Le paramêtre value me permet d'aller vers la page de détails. Il faut également transmettre à l'application le numéro de la ligne. Pour celà, le paramêtre actionListener permet d'appeler une méthode selectEnregistrement(ActionEvent). Dans celle-ci, je vérifie l'id du bouton ayant déclenché l'action, ce qui permettrait de savoir quelle ligne a été cliquée. Plus qu'à s'assurer que l'id du bouton indique la ligne en utilisant son paramêtre id.

    Voici le code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    <h:dataTable value="#{form.listeEnregistrements}" var="enregistrement" border="1">
        <h:column>
            <h:outputText value="#{enregistrement.id}" />
        </h:column>
        <%-- diverses colonnes supprimées ici --%>
        <h:column>
            <h:commandButton
                id="#{enregistrement.id}"
                value="Editer"
                actionListener="#{form.selectEnregistrement}"
                action="editEnregistrement"
                immediate="true"
            />
        </h:column>
    </h:dataTable>
    Tout à donc l'air d'aller bien, sauf que j'obtiens ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    Etat HTTP 500 - 
    
    type Rapport d'exception
    message 
    description Le serveur a rencontré une erreur interne () qui l'a empêché de satisfaire la requête.
    exception 
    javax.servlet.ServletException: Exception in JSP: /usersList.jsp:43
    
    40:                         <f:facet name="header">
    41:                             <h:outputText value="#{text.usersList_actions}" />
    42:                         </f:facet>
    43:                     <h:commandButton
    44:                         id="#{enregistrement.id}"
    45:                         value="Editer"
    46:                         actionListener="#{form.selectEnregistrement}"
    Pas vraiment ce que je voulais.

    En remplaçant le paramêtre id (id="#{enregistrement.id}") par une valeur fixe, la page s'affiche correctement, mais bien sûr je perds alors la possibilité pour selectEnregistrement d'identifier la ligne choisie.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <h:outputText value="#{enregistrement.id}" />
    fonctionne normalement.
    Remplacer #{enregistrement.id} par #{enregistrement.getId} ne fonctionne pas.

    Est-il impossible de calculer l'id d'un composant dynamiquement? Connaissez vous un autre moyen d'accéder au détail d'une ligne d'un tableau dataTable?

    Merci d'avance.

  2. #2
    Membre chevronné
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    946
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 946
    Points : 1 849
    Points
    1 849
    Par défaut
    Après une heure vingt de recherches supplémentaires j'ai finalement trouvé... Désolé, je n'espérais vraiment plus trouver quand j'ai posté.

    Pour ceux que ça intéresse :
    http://wiki.apache.org/myfaces/Execu...ttonParameters

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    27
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 27
    Points : 29
    Points
    29
    Par défaut
    J'ai pas trop compris la solution est ce que vous pouvez m'expliquer d'avantage comme résoudre ce problème
    Merci d'avance .

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

Discussions similaires

  1. Réservation en ligne et calculs dynamiques
    Par vince-ewok dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 14/02/2008, 09h32
  2. atteindre un tag ID dynamique
    Par Nulenprogra dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 20/01/2008, 20h02
  3. [JSF] custom UI Component & Tag facelet
    Par devvirtual dans le forum JSF
    Réponses: 9
    Dernier message: 22/06/2007, 18h01
  4. Création de champs calculés dynamique
    Par momo_gea dans le forum IHM
    Réponses: 1
    Dernier message: 01/06/2007, 16h39
  5. [debutant] - calcul dynamique dans un formulaire
    Par Alcohollica dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 26/02/2007, 15h50

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