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

Eclipse Java Discussion :

Validation syntaxique


Sujet :

Eclipse Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 4
    Par défaut Validation syntaxique
    Bonjour,

    Dans un fichier, j'utilise du jstl et du html. Exemple ("erreurs" repérées par eclipse en rouge) :

    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
            
    <c:if test="${param.jour == jour}">
           <c:if test="${concatHeure >= concatHeureDeb && concatHeure <= concatHeureFin}">
                <c:if test="${affTH == true}">
                          <table border="1">
                            <tr align="center">
                                <th>Sport</th>
                                <th>Jour</th>
                                <th>Heure</th>
                                <th>Lieu</th>
                                <th>Professeur</th>
                                <th>Type</th> 
                                <th>Commentaires</th>     
                             </tr>
                </c:if>
           </c:if>
     </c:if>
    ....
                          </table>
    Ce sont des erreurs de type "Missing end tag". Pourtant, mon code est bon, valide W3C et tout le tralalala.
    En fermant la balise <table> dans la condition, plus d'erreur. J'en déduis qu'Eclipse n'arrive pas à valider la structure de mon fichier, celui-ci mixant jstl et html.

    Y a t'il moyen d'arranger cela ? Ou au pire, désactiver la validation syntaxique HTML et garder celle du jstl ?

    Merci d'avance

  2. #2
    Rédacteur
    Avatar de CyberChouan
    Homme Profil pro
    Directeur technique
    Inscrit en
    Janvier 2007
    Messages
    2 752
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Janvier 2007
    Messages : 2 752
    Par défaut
    Pourtant, c'est Eclipse qui a raison.

    Dans un fichier XML bien formé, tu dois fermer ta table dans le <c:if> (et plus généralement, tu n'as pas le droit d'inverser l'ordre de fermeture des balises).

    D'ailleurs, ce qui est valide W3C, c'est certainement le fichier de sortie final... pas le jstl.

    Dans ton cas, tu pourrais te retrouver avec un fichier de sortie non valide: si ton test n'est pas vérifié, ton code contient "/table" alors qu'aucune balise "table" n'a été ouverte.
    Avant de poster, pensez à regarder la FAQ, les tutoriaux, la Javadoc (de la JRE que vous utilisez) et à faire une recherche
    Je ne réponds pas aux questions techniques par MP: les forums sont faits pour ça
    Mes articles et tutoriaux & Mon blog informatique

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 4
    Par défaut
    Bonjour,

    Je ne demande pas à Eclipse de vérifier si mon code est "XML bien formé", mais si le code jstl est valide. Je ne comprends pas pourquoi il aurait à interpréter mon texte d'affichage (HTML) Je pourrais très bien passer par un <c:out value="<table> ..."/> mais c'est assez lourd et ce n'est pas mon but

    Mon exemple était un peu simplifié et pas forcément très explicite (le </table> ne s'affiche que si le <table> a été ouvert). En pratique, je parcours une liste d'éléments et j'affiche ceux qui correspondent à certains critères.

    J'ouvre un <table> et affiche les entetes de colonne seulement si j'affiche au minimum un élément.

    Voici un exemple un peu plus explicite (je l'espère en tout cas ).

    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
    <c:set var="affTH" value="true"/>
    <c:forEach var="content" items="${contents}" varStatus="totalCount">
             <content:contentAttribute id="jour" contentId="${content.id}" attributeName="jour"/>
             <content:contentAttribute id="name" contentId="${content.id}" attributeName="name"/>
             <content:contentAttribute id="concatHeure" contentId="${content.id}" attributeName="concatHeure"/>
    
    <c:if test="${param.jour == jour}">
           <c:if test="${concatHeure >= concatHeureDeb && concatHeure <= concatHeureFin}">
                <c:if test="${affTH == true}">
                          <table border="1">
                            <tr align="center">
                                <th>Sport</th>
                                <th>Jour</th>
                                <th>Heure</th>
                                <th>Lieu</th>
                                <th>Professeur</th>
                                <th>Type</th> 
                                <th>Commentaires</th>     
                             </tr>
                    <c:set var="affTH" value="false"/>
                </c:if>
            <tr align="center">           
               <td width="150px"><b><c:out value="${name}"/></b></td>
               <td width="100px"><c:out value="${jour}"/></td>
               <td width="100px"><c:out value="${concatHeure}"/></td>
               ....
            </tr>
                
           </c:if>
     </c:if>
    </c:forEach>
    <c:if test="${affTH == false}">
         </table>
    </c:if>
    Dans ce cas, je ne peux ouvrir et fermer ma balise table dans la même condition et mon fichier de sortie est bon.

Discussions similaires

  1. Validation syntaxique requête INTO
    Par BHeaDMaN dans le forum Requêtes
    Réponses: 1
    Dernier message: 11/05/2011, 15h44
  2. est ce un XSchema Valide?
    Par Slash dans le forum Valider
    Réponses: 4
    Dernier message: 06/03/2003, 14h01
  3. Coloration syntaxique ASM dans un RichEdit
    Par Crick dans le forum Composants VCL
    Réponses: 5
    Dernier message: 20/12/2002, 01h53
  4. tester si une date est valide
    Par Andry dans le forum Langage
    Réponses: 5
    Dernier message: 17/09/2002, 11h54
  5. [VB6] Evenement validate
    Par grosjej dans le forum VB 6 et antérieur
    Réponses: 4
    Dernier message: 05/09/2002, 15h46

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