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 perte objet dans test


Sujet :

JSF Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    146
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 146
    Par défaut c:if perte objet dans test
    Bonjour à tous,

    je rencontre une difficultée avec un if et sa me laisse vraiment perplexe...

    J'ai ce code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    <p:dataList id="serveurlist" value="#{pageInstanceBean.serveurs}" var="serveur" itemType="circle">  
    	#{serveur.hostname}, #{serveur.idTypeServeur.nomTypeServeur}, #{serveur.idTypeServeur.tse}
    	<!-- on teste si le type a acces au remote -->
    	<c:if test="#{serveur.idTypeServeur.tse}">
    		Remote, 
    	</c:if>
    </p:dataList>
    Le rendu que je devrais avoir est de ce type (tse est un boolean) :
    host, type, false
    host, type, true Remote,

    Or quand je passe dans le if je perd mon objet. Je n'entre jamais à l'interieur comme mon test me retourne toujours false (alors que ce n'est pas toujours le cas). Je le sais car j'ai tenté d'externaliser le test dans mon bean :

    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
     
    <c:if test="#{monBean.test(serveur)}">
    	Remote, 
    </c:if>
     
    // dans le bean
    public boolean test(Serveur s)
    {
         if (s == null)
         {
              System.out.println("PROBLEME");
              return false;
          }
          else
          {
                return s.getIdTypeServeur.getTse();
           }
    }
    Et j'entre toujours dans le cas où mon objet est null. Je ne comprend pas pourquoi car la ligne juste au dessus de mon test, serveur n'est pas null...

    J'ai tenté de remplacer le c:if par un c:when et là bizarement sa me retourne toujours true...

    Si quelqu'un y comprend quelque chose... Merci

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    146
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 146
    Par défaut
    Alors je n'ai pas très bien compris. Mais apparement le c:if ne s'excute pas sur le serveur de la maniere que je souhaiterais. Si j'ai bien compris il s'execute avant que mes objets de soient instencié.

    La solution est de passer par un composant rendered. Comme moi je ne veux pas qu'afficher du texte j'ai choisi le p:commanLink, ce qui donne :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <p:commandLink value=" Remote," rendered="#{serveur.idTypeServeur.tse == 'true'}"/>

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

Discussions similaires

  1. test objet dans un conteneur
    Par kohsaka dans le forum VB.NET
    Réponses: 2
    Dernier message: 04/06/2007, 13h20
  2. [SQL] Perte de variable dans test ISSET
    Par dfournier dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 21/10/2006, 12h03
  3. acceder a un objet dans un CPropertySheet
    Par ludoviskm dans le forum MFC
    Réponses: 6
    Dernier message: 21/11/2004, 08h58
  4. [CR9] redimensionner un objet dans la section détail !
    Par LIM dans le forum SAP Crystal Reports
    Réponses: 3
    Dernier message: 27/04/2004, 18h19
  5. [arbre] Sauvegarder un objet dans un fichier
    Par Guigui_ dans le forum Langage
    Réponses: 6
    Dernier message: 07/02/2003, 00h55

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