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 :

Conflit d'identifiant richfaces


Sujet :

JSF Java

  1. #1
    Membre actif Avatar de fab76000
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    311
    Détails du profil
    Informations personnelles :
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations forums :
    Inscription : Janvier 2008
    Messages : 311
    Points : 294
    Points
    294
    Par défaut Conflit d'identifiant richfaces
    Bonjour a tous,

    Je développe une applicatio nweb jsf richfaces, j'ai donc une page contenant un rich:tabpanel, avec deux onglet( des tab), le code de chaque onglet est dans un page externe que j'inclue dans ma page principale. Le problème est que puisque j'ai des similarités entre les deux onglet du code est identique, j'ai donc des conflit au niveau des identifiant des composants.
    Suis je obligé de modifier les identifiants doublon ou est-ce possible de charger les composants de l'onglet seulement lorsque l'on sélectionne??

    J'espère avoir été clair dans mon contexte.
    Si quelqu'un à une idée..Merci d'avance

  2. #2
    Rédacteur
    Avatar de romaintaz
    Homme Profil pro
    Java craftsman
    Inscrit en
    Juillet 2005
    Messages
    3 790
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Java craftsman
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2005
    Messages : 3 790
    Points : 7 275
    Points
    7 275
    Par défaut
    Si tu mets switchType="ajax" ou switchType="server" dans ton rich:tabPanel, ça ne change rien ?
    Nous sommes tous semblables, alors acceptons nos différences !
    --------------------------------------------------------------
    Liens : Blog | Page DVP | Twitter
    Articles : Hudson | Sonar | Outils de builds Java Maven 3 | Play! 1 | TeamCity| CitConf 2009
    Critiques : Apache Maven

  3. #3
    Membre actif Avatar de fab76000
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    311
    Détails du profil
    Informations personnelles :
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations forums :
    Inscription : Janvier 2008
    Messages : 311
    Points : 294
    Points
    294
    Par défaut
    Si mais j'utilise déja switchtype=client, je pense que je ne vais pas avoir le choix que de différencier les id, et faire en sorte que lorsque l'on quitte un onglet pour un autre, celui se reset.Cela évitera les confusions...A moins qu'il y ait une idée miracle?? : )

  4. #4
    Rédacteur
    Avatar de romaintaz
    Homme Profil pro
    Java craftsman
    Inscrit en
    Juillet 2005
    Messages
    3 790
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Java craftsman
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2005
    Messages : 3 790
    Points : 7 275
    Points
    7 275
    Par défaut
    Le problème avec switchType="client" c'est que comme le changement de tab se fait au niveau du client, il est obligé d'avoir toute la page (donc tous les contenus des tabs) chargé. D'où ton problème d'ID.

    Donc les choix qui s'offrent à toi :

    • Changer le switchType en ajax ou server.
    • Changer les IDs d'une des pages afin d'éviter d'avoir des doublons

    J'avais bien une 3e solution, mais bon. J'avais créé un composant qui avait pour seul but de préfixer les IDs des composants qu'il contenait.
    Ainsi le code JSF suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <h:form id="myForm"
        <h:inputText id="input1" .../>
        <maLib:basicContainer id="container">
            <h:inputText id="input1" .../>
        </maLib:basicContainer>
    </h:form>
    créait ainsi les IDs suivantes pour les 2 inputText : "myForm:input1" et "myForm:container:input1".
    Ce composant n'est pas difficile à faire, vu qu'il ne fait rien, si ce n'est qu'implémenter l'interface NamingContainer (ce que fait par exemple le composant <h:datatable/> via la classe HtmlDataTable)...
    Nous sommes tous semblables, alors acceptons nos différences !
    --------------------------------------------------------------
    Liens : Blog | Page DVP | Twitter
    Articles : Hudson | Sonar | Outils de builds Java Maven 3 | Play! 1 | TeamCity| CitConf 2009
    Critiques : Apache Maven

  5. #5
    Membre actif Avatar de fab76000
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    311
    Détails du profil
    Informations personnelles :
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations forums :
    Inscription : Janvier 2008
    Messages : 311
    Points : 294
    Points
    294
    Par défaut
    Ok merci romaintaz, je pense que je vais différencier les doublons d'id.
    Par contre, sur le meme sujet, je peine à rafraichir les onglets. Plus précisemment, je voudrais que lorsque je quitte un onglet celui ci se rafraichit (RAZ), je test avec le a4jsupport sur les tab ou tabpanel mais c'est pas concluant, les event sont bien ontabchange, ontabenter ou ontableave????

  6. #6
    Rédacteur

    Profil pro
    Inscrit en
    Juin 2003
    Messages
    4 184
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 4 184
    Points : 5 059
    Points
    5 059
    Par défaut
    comme romaintaz t'u expliqué:

    Le problème avec switchType="client" c'est que comme le changement de tab se fait au niveau du client, il est obligé d'avoir toute la page (donc tous les contenus des tabs) chargé. D'où ton problème d'ID.
    Il n'y a pas d'envois de données au serveur sur un changement d'onglet, si tu fais des actions coté serveur et que tu veuille rafraichir le contenu de l'onglet, tu dois changer le switchType..

  7. #7
    Membre actif Avatar de fab76000
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    311
    Détails du profil
    Informations personnelles :
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations forums :
    Inscription : Janvier 2008
    Messages : 311
    Points : 294
    Points
    294
    Par défaut
    Merci a vous pour votre aide, j'ai résolu mon problème en gardant le switchtype client mais en en ajoutant des a4j support sur chaque onglet, appellant une méthode de raffraichissement sur l'event ontableave.
    bonne soirée

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

Discussions similaires

  1. Problème sur SocketHandle conflit d'identifiant
    Par juju1988 dans le forum Web & réseau
    Réponses: 13
    Dernier message: 09/07/2012, 15h45
  2. Conflit de style css perso et ce de Richfaces
    Par elbissat dans le forum JSF
    Réponses: 5
    Dernier message: 01/07/2009, 11h13
  3. Réponses: 4
    Dernier message: 13/11/2008, 17h44
  4. Conflits d'identifiants entre portlets
    Par ginkas31 dans le forum Websphere
    Réponses: 2
    Dernier message: 09/10/2008, 17h51
  5. [Technique] Conflits entre plusieurs requêtes
    Par Neowile dans le forum Décisions SGBD
    Réponses: 3
    Dernier message: 24/03/2003, 09h37

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