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 :

valueChangeListener ignoré dans une subview


Sujet :

JSF Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    37
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Mai 2005
    Messages : 37
    Par défaut valueChangeListener ignoré dans une subview
    Bonjour !

    Je travaille sur une petite appli web avec une navigation par onglet et, pour commencer, j'ai codé l'ensemble du contenu de mes pages jsp dans le même fichier.

    En gros, l'archi de la page est comme ca : un menu, endessous duquel se trouve une combobox h:selectonemenu qui, lors d'un changement d'élément, réaffiche une datatable.

    Quand tout est dans le même fichier, tout fonctionne correctement, mais comme ce n'est pas facile de maintenir du code quand tout est dans le même fichier, j'ai décidé de diviser le fichier. Mon index.jsp contient juste le menu, et mon fichier techs.jsp contient la combobox et la datable.

    Comme je l'ai dit tout fonctionne correctement quand tout est dans le même fichier, mais maintenant que tout est séparé, lorsque j'inclue mon fichier techs.jsp dans index.jsp avec le tag jsp:include, la methode valueChangeListener attachée à ma combobox est completement ignorée et ma table n'est donc pas raffraichie correctement.

    Voici une partie de mon code :

    Je ne pense pas qu'il soit nécessaire de montrer ce a quoi ressemble index.jsp vu qu'il ne contient que les onglets et l'include.

    techs.jsp :
    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
    16
    17
    18
    19
    20
     
    <f:subview id="tabTech">
            <ui:form id="form1">
                <ui:panelLayout binding="#{TabTech.layoutPanel6}" id="layoutPanel6" panelLayout="flow" style="background-color: #0b1d4f; width: 100%; height: 100%">
    ..........
                    <h:selectOneMenu binding="#{TabTech.CB_EscTech}" id="CB_EscTech"
                            immediate="true" title="#{EscalesManagedBean.title}" value="#{EscalesManagedBean.selectedOption}" valueChangeListener="#{EscalesManagedBean.processValueChange}" onchange="submit()">
                            <f:selectItems id="dropdown15SelectItems" value="#{EscalesManagedBean.listeEscales}"/>
                        </h:selectOneMenu>
     
                    <h:dataTable binding="#{TabTech.tableTech}" border="1" columnClasses="td" headerClass="list-header th"
                        id="tableTech" rowClasses="list-row-even td, list-row-odd td" styleClass="tableau"
                        value="#{TechniciensManagedBean.tech}" var="tech">
                        <h:column binding="#{TabTech.nomTech}" id="nomTech">
                            <h:outputText binding="#{TabTech.outputText41}" id="outputText41" title="null" value="#{tech.nomTechnicien}"/>
                            <f:facet name="header">
                                Nom
                            </f:facet>
                        </h:column>
    ..........

    La méthode processValueChange :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    public void processValueChange(ValueChangeEvent vce) throws AbortProcessingException {
            String newValue = (String)vce.getNewValue();
            System.out.println(newValue + "valueChangeListener");
            int indexSelection = trouverIndexSelection(newValue);
            if(indexSelection >= 0){
                setTitle(listeEscalesDAO.get(indexSelection).getNomEscale());
            }else{
                setSelectedOption("*");
                setTitle("All");
            }
       }

    Le reste du code ne contient que des éléments graphiques.

    Je devrais aussi ajouter que si je lance ma page techs.jsp toute seule, elle marche parfaitement, et le raffraichissement de ma table se fait tres bien.

    Je sais que le problème vient du listener qui est ignoré car ma page est quand même sousmise au serveur, et aucun des System.out.println que j'ai pu mettre dans ma methode processValueChange ne sont affichée dans le log serveur.
    Je ne pense pas non plus que cela vienne du managed bean car ma liste est correctement initialisée et contient bien toutes les infos qu'elle devrait.

    J'espere que vous pouvez m'aider à résoudre ce problème car je ne vois absolument pas d'ou ca peut bien provenir.

    Merci

    Yann

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    37
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Mai 2005
    Messages : 37
    Par défaut
    Ok, ben c'était tout bête, même si je n'arrives pas à comprendre pourquoi.

    Le problème venait du tag ui:form dans ma subview. Je l'ai enlevé et ça a suffit a tout faire marcher...

    Le problème est résolu, mais je vais attendre un peu pour le tagger résolu (ca n'encourage pas les gens à regarder ).

    J'aimerais savoir si quelqu'un peut m'expliquer pourquoi avoir une form dans une subview pose problème.

    Merci

    Yann

  3. #3
    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.
    Peut être que ton include est déjà dans un form, et donc dans la page incluse, tes composants se retrouvent dans deux forms imbriqués (ce qui n'est pas du tout drôle)?

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    37
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Mai 2005
    Messages : 37
    Par défaut
    C'est effectivement le cas

    Bon ben encore un probleme stupide résolu.

    Merci

    Yann

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

Discussions similaires

  1. ignorer un warning dans une methode
    Par giova_fr dans le forum C#
    Réponses: 4
    Dernier message: 06/08/2009, 13h42
  2. [Requête_VBA_Access] Paramètre ignoré dans une requête
    Par Tari_calaelen dans le forum VBA Access
    Réponses: 6
    Dernier message: 03/07/2007, 16h06
  3. Ignorer les accents dans une requête
    Par pierrot67 dans le forum Bases de données
    Réponses: 2
    Dernier message: 02/03/2007, 12h19
  4. Ignorer la case dans une requete sql ?
    Par gregcat dans le forum Bases de données
    Réponses: 2
    Dernier message: 27/03/2006, 11h56
  5. ignorer les accents dans une recherche
    Par nono_cap dans le forum Langage SQL
    Réponses: 3
    Dernier message: 23/03/2006, 17h30

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