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 :

problème de <c:if>


Sujet :

Taglibs Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Étudiant
    Inscrit en
    Mars 2009
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2009
    Messages : 10
    Par défaut problème de <c:if>
    Bonjour,

    J'ai un probleme avec mon boucle foreach.
    Dans la boucle j'ai deux test <C:if> mais il prend en compte que le premier cas .
    Dans le deuxieme cas du if il affiche rien.
    S'il y'a quelqu'un qui s'y connait merci de me débloquer svp.


    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
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
     <sql:query var="Refs" maxRows="1000" dataSource="jdbc/mabase">
                SELECT Var1 FROM Table
                WHERE Var1 = ? <sql:param value="${Var2}"/>
            </sql:query>
            <table width="90%" border="0">
     
                <th>
                    <c:out value="NomVariable"/>
                </th>
     
                <!-- add the table rows from the result set -->
     
               <c:forEach  var="MaVariable" items="${Refs.rows}">
     
                    <c:set var="Result" value="${MaVariable.Var1}"/>
     
                    <c:if test="${Result == Var2}"  >
                        <tr>
                            <td>
                                <p><c:out value="${Result}"/> :cette Variable existe déja, changer les parametres! </p>
                            </td>
                        </tr>
                    </c:if>
     
     
                    <c:if test="${Result != Var2}">
                        <tr>
                            <td> 
                                <p> <c:out value="${Result}"/>  Voulez-vous confirmer la Variable </p>
                            </td>
                        </tr>
                        <tr>
                            <td>
                                <form name="Confirmation" action="UpdateCalcul.jsp">
                                    <input type="submit" value="Confirmer" name="Confirmer" />
                                </form>
                            </td>
     
                        </tr>
                    </c:if>
     
    </c:forEach>
            </table>

  2. #2
    Expert confirmé

    Femme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    5 793
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 793
    Par défaut
    Si Var1 est de type String, il faut utiliser l'opérateur eq à la place du == et ne à la place de != :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <c:if test="${Result eq Var2}"  >
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <c:if test="${Result ne Var2}">
    Sinon, petite remarque, selon les conventions de nommage Java, les variables doivent commencer par une minuscule.

  3. #3
    Membre averti
    Profil pro
    Étudiant
    Inscrit en
    Mars 2009
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2009
    Messages : 10
    Par défaut probleme de <c:when>
    Merci pour ta réponse, j'ai changé en utilisant <c:when> et <otherwise> mais c'est toujours pareil il prend en compte le code qui est dans le <c:when> mais pas le otherwise.

    La variable Var1 est une reférence qui contient des une lettre est des chiffre exemple: Var1= A10-39-2.05-2.08.

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 15
    Par défaut
    Bonjour,

    pourrais-tu pour le debug ajouter la valeur de ta variable en début de boucle :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    <c:forEach  var="MaVariable" items="${Refs.rows}">
     
                    <c:set var="Result" value="${MaVariable.Var1}"/>
                    Result : ${Result}, Var2 : ${Var2}<br/>
                    Test : ${Result eq Var2}<br/>
    [...]
     
    </c:forEach>
    En fonction du résultat du test on pourra voir si le problème vient de la valeur de tes variables ou effectivement du c:if...

Discussions similaires

  1. Problème d'installation oracle 8.1.7 sous NT
    Par Anonymous dans le forum Installation
    Réponses: 7
    Dernier message: 02/08/2002, 14h18
  2. Problème d'impression
    Par IngBen dans le forum C++Builder
    Réponses: 7
    Dernier message: 22/05/2002, 11h37
  3. Problème avec la mémoire virtuelle
    Par Anonymous dans le forum CORBA
    Réponses: 13
    Dernier message: 16/04/2002, 16h10
  4. Réponses: 6
    Dernier message: 25/03/2002, 21h11

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