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 :

c:if ne récupère pas les modifications réalisées dans la phase 6 du cycle de vie JSF.


Sujet :

JSF Java

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    mai 2007
    Messages
    41
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : mai 2007
    Messages : 41
    Points : 28
    Points
    28
    Par défaut c:if ne récupère pas les modifications réalisées dans la phase 6 du cycle de vie JSF.
    Salut tous le monde,

    Il m'arrive de modifier des variables booléennes dans la phase 6 (render response) du cycle de vie d'une requête JSF et le tag c:if de la JSTL ne prend pas en compte ce changement, il ne récupère que les modifications de la phase 5 (invoke application) .

    Est-ce normal ?
    Est-ce un bug ?
    Compatibilité des librairies mise en cause ? (sachant que JSF 1.2 est censé avoir une meilleure compatibilité avec la JSTL)

    Ma configuration est :
    JBoss 4.2.0.GA
    JSF 1.2
    JSTL (fournit par le serveur d'application)

    En attendant une réponse de votre part, je vous remercie.

  2. #2
    Membre expérimenté
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    avril 2004
    Messages
    1 184
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : avril 2004
    Messages : 1 184
    Points : 1 745
    Points
    1 745
    Par défaut
    Comment tu effectue les modifications en phase render response?

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    mai 2007
    Messages
    41
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : mai 2007
    Messages : 41
    Points : 28
    Points
    28
    Par défaut
    A l'aide d'une méthode publique "get" dans mon bean, comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    public String getInitBean(){
            if (j ai ce qui est requit){
               this.showTable = true;
               this.error = false;
            }else {
               this.showTable = false
               this.error = true;
            }
            return "";
    }
    sur ma page JSF, tout juste après le <f:view... j'execute cette instruction :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <h:outputText value="#{bean.initBean}" />
    Elle ne renvoie qu'une chaine vide, mais elle me permet de réaliser les derniers tests avant le rendu final.

  4. #4
    Membre expérimenté
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    avril 2004
    Messages
    1 184
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : avril 2004
    Messages : 1 184
    Points : 1 745
    Points
    1 745
    Par défaut
    A mon avi tu dois pouvoir caser ton test ailleur que en utilisant un outPutText...

    Avec un phase event par exemple, ou en le codant à la fin de d'une action...

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    mai 2007
    Messages
    41
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : mai 2007
    Messages : 41
    Points : 28
    Points
    28
    Par défaut
    Tout juste avant la phase "render response" ou après "Invoke application". Et donc je devrais créer et enregistrer (dans le faces-config) un "phase listener" pour chaque interface. Cela me semble un peu fastidieu.

    J'ai plus de 20 interfaces (plusieurs bean) et en plus l'application risque d'évoluer. La deuxième solution que je vois est de créer un système générique avec un seul "phase listener" qui gérera tous les tests (centraliser les tests de différents bean, différentes logiques !).

    Merci pour ton aide.

    PS : Mais je ne comprends pas pourquoi les changements resultant du <h:outputText ... initBean... ne sont pas pris en compte par la JSTL sachant que toutes les librairies (taglib) JSF n'ont aucun problème. Et en plus, je pense que cette instruction est permise par JSF, non ?

Discussions similaires

  1. Réponses: 2
    Dernier message: 24/06/2010, 22h04
  2. [Live USB]Le système ne garde pas les modif
    Par spiwis dans le forum Administration système
    Réponses: 2
    Dernier message: 19/08/2009, 07h53
  3. Réponses: 5
    Dernier message: 20/07/2009, 14h29
  4. Réponses: 7
    Dernier message: 28/04/2009, 16h45
  5. Réponses: 6
    Dernier message: 22/05/2008, 12h59

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