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

Taglibs Java Discussion :

Probleme d'utilisation du tag <c:if [JSTL]


Sujet :

Taglibs Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Futur Membre du Club
    Inscrit en
    Février 2005
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Février 2005
    Messages : 4
    Par défaut Probleme d'utilisation du tag <c:if
    Bonjour, voila, j'ai un petit soucis avec l'utilisation du tag <c:if>

    Je m'explique:

    Dans mon action struts, je fais ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    request.setAttribute("sp", sp);
    Mon bean sp possede un Set d'infos qui est accessible grace à la méthode sp.getInfos().

    Je suis 100% sur que ce Set est vide ( sp.getInfos().size() retourne 0 )

    Dans ma jsp, je fait:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    <c:if test="${!empty sp.infos}">
    	<tr><td>coucou</td></tr>
    </c:if>
    et bien sur, coucou s'affiche

    Y'a t il une astuce? ou faut-il bannir l'utilisation des Set?
    Merci pour votre aide.

  2. #2
    Membre émérite
    Profil pro
    Développeur Back-End
    Inscrit en
    Avril 2003
    Messages
    782
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Back-End

    Informations forums :
    Inscription : Avril 2003
    Messages : 782
    Par défaut
    Citation Envoyé par go_ne
    Je suis 100% sur que ce Set est vide ( sp.getInfos().size() retourne 0 )
    justement, ce n'est pa null


    essaie

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <c:if test="${fn:length(sp.infos)!=0}">
    	<tr><td>coucou</td></tr>
    </c:if>
    il faut declarer la librairie
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn" %>

  3. #3
    Futur Membre du Club
    Inscrit en
    Février 2005
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Février 2005
    Messages : 4
    Par défaut
    Citation Envoyé par fnobb
    justement, ce n'est pa null


    essaie

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <c:if test="${fn:length(sp.infos)!=0}">
    	<tr><td>coucou</td></tr>
    </c:if>
    empty, ca teste pas la nullité de la chose...
    Le test n'est pas censé faire un genre ( null or size>0) ?

    Sinon, j'ai pas la taglib fn, et je ne sais pas si je vais pouvoir la mettre...

  4. #4
    Membre émérite
    Profil pro
    Développeur Back-End
    Inscrit en
    Avril 2003
    Messages
    782
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Back-End

    Informations forums :
    Inscription : Avril 2003
    Messages : 782
    Par défaut
    il y a une différence entre null et vide (voir les nombreux NullPointerException du forum )

    la librairie "fn" est dans jstl : si tu utilise "c" pourquoi pas "fn" ?

    pour plus d'info sur jstl il y a un tutoriel très bien fait ( adiGuba )

  5. #5
    Membre émérite
    Profil pro
    Développeur Back-End
    Inscrit en
    Avril 2003
    Messages
    782
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Back-End

    Informations forums :
    Inscription : Avril 2003
    Messages : 782
    Par défaut
    autre solution pour savoir pourquoi le test n'est pas bon :

    essaie

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <c:if test="${!empty sp.infos}">
    	<tr><td>${sp.infos}</td></tr>
    </c:if>
    et tu verras ce que renvoie sp.getInfos().

  6. #6
    Membre émérite
    Profil pro
    Développeur Back-End
    Inscrit en
    Avril 2003
    Messages
    782
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Back-End

    Informations forums :
    Inscription : Avril 2003
    Messages : 782
    Par défaut
    concernant empty :

    empty renvoie true pour les List, les Map, les Tableaux, les String vide, mais pas pour les Set

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

Discussions similaires

  1. utiliser un tag de struts dans un taglibs
    Par Boosters dans le forum Struts 1
    Réponses: 3
    Dernier message: 19/06/2006, 18h18
  2. utiliser les tag [MFC] [Win32] [.NET] [C++/CLI]
    Par hiko-seijuro dans le forum Visual C++
    Réponses: 8
    Dernier message: 08/06/2005, 15h57
  3. Probleme d'utilisation de directX 9 avec visual studio.net
    Par cranedoeuf dans le forum DirectX
    Réponses: 1
    Dernier message: 24/05/2004, 04h33
  4. [Debutant] probleme pour utiliser les classes d'un .jar
    Par pissek dans le forum Eclipse Java
    Réponses: 3
    Dernier message: 12/05/2004, 18h21
  5. Merci d'utiliser les TAG
    Par Cian dans le forum Etudes
    Réponses: 0
    Dernier message: 07/08/2003, 17h46

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