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

Servlets/JSP Java Discussion :

Directives JSP => ligne vide HTML


Sujet :

Servlets/JSP Java

  1. #1
    rs
    rs est déconnecté
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    106
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 106
    Points : 96
    Points
    96
    Par défaut Directives JSP => ligne vide HTML
    Bonjour à tous,

    Chaque directive dans mon fichier JSP (<%@ xxx %>) se traduit à l'exécution par un retour à la ligne dans le fichier HTML généré. J'ai notamment 5 lignes vides au début du fichier HTML qui correspondent aux directives de page du fichier JSP.
    Est-il possible d'éviter ce comportement ?

    D'avance merci.

  2. #2
    Modérateur
    Avatar de OButterlin
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    7 313
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 7 313
    Points : 9 529
    Points
    9 529
    Billets dans le blog
    1
    Par défaut
    Tu peux déjà remonter ces lignes au début de ton fichier...
    Je présume quelles sont dans <body>...

    A+
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  3. #3
    rs
    rs est déconnecté
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    106
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 106
    Points : 96
    Points
    96
    Par défaut
    Les directives de page sont effectivement au début du fichier :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <%@ page language="java" buffer="8kb" autoFlush="true" isThreadSafe="true" isErrorPage="false" import="org.omg.*,org.omg.CORBA.ORB,org.omg.CORBA.StringHolder,java.util.*" %>
    Ce qui génére le fichier HTML suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
     
     
     
     
     
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
    <html ...
    Il y a aussi à l'intérieur du code JSP des directives include :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <%@ include file="inc/index_param.jsp" %>
    Qui générent également des lignes vides

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    30
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 30
    Points : 24
    Points
    24
    Par défaut
    essaye de mettre dans ton web.xml sous
    <servlet>
    <servlet-name> jsp </servlet-name>

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
      <init-param>
        <param-name>trimSpaces</param-name>
        <param-value>true</param-value>
      </init-param>
    cela supprime certains retours à la ligne mais supprime certains espaces non sécables dans des libelles (ce qui peut être génant) à voir...

  5. #5
    rs
    rs est déconnecté
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    106
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 106
    Points : 96
    Points
    96
    Par défaut
    Effectivement, dans cette voie, j'ai trouvé sur http://forum.java.sun.com/thread.jsp...sageID=2728991

    That is not the only way. In your server's default web.xml, there should be a servlet definition for JSPs, something like this:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
        <servlet>
            <servlet-name>jsp</servlet-name>
            <servlet-class>org.apache.jasper.servlet.JspServlet</servlet-class>
            <init-param>
                <param-name>fork</param-name>
                <param-value>false</param-value>
            </init-param>
            <load-on-startup>3</load-on-startup>
        </servlet>


    There is a possible init-param called trimSpaces which will do the job:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
            <init-param>
                <param-name>trimSpaces</param-name>
                <param-value>true</param-value>
            </init-param>

    This may be only a Tomcat 5 feature, however.


    Merci en tout cas, je essayer ça.

  6. #6
    En attente de confirmation mail

    Homme Profil pro
    Inscrit en
    Juillet 2006
    Messages
    766
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 766
    Points : 1 267
    Points
    1 267
    Par défaut
    En l'occurence, pour moi ca ne change rien. Meme arpès avoir rebooté le PC.
    Voici mon fichier web.xml

    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
       <servlet>
            <servlet-name>jsp</servlet-name>
            <servlet-class>org.apache.jasper.servlet.JspServlet</servlet-class>
            <init-param>
                <param-name>fork</param-name>
                <param-value>false</param-value>
            </init-param>
            <init-param>
                <param-name>trimSpaces</param-name>
                <param-value>true</param-value>
            </init-param>
            <init-param>
                <param-name>xpoweredBy</param-name>
                <param-value>false</param-value>
            </init-param>
            <load-on-startup>3</load-on-startup>
        </servlet>
    Les lignes blanches sont génantes pour insérer au préalable une déclaration de doctype xml.
    Et en plus je ne veux pas avoir du code xml avec les morceaux scotchés les uns les autres.
    Bref, l'idéal serait de ne commencer les lignes blanches seulement à la première ligne de texte renvoyé par le navigateur.
    Mais là je crois que je rêve un peu, non ?

  7. #7
    Membre expert
    Avatar de Alexandre T
    Homme Profil pro
    Chef de projets AMO
    Inscrit en
    Mai 2002
    Messages
    1 213
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Chef de projets AMO
    Secteur : Transports

    Informations forums :
    Inscription : Mai 2002
    Messages : 1 213
    Points : 3 001
    Points
    3 001
    Par défaut
    Bonjour,

    Je me permets de relancer ce message. Grâce à cette info, j'ai pallié à ce problème que je rencontrais sur mon serveur tomcat5.5 de développement.

    En passant cela sur le serveur de qualification (préproduction en somme), la méthode ne marche plus. Je récupère des espaces. Et c'est particulièrement pénible car mes javascripts ne fonctionnent plus. La seule différence, mais elle n'est pas minime est que mon serveur tomcat tourne sur Windows en développement et sous une distribution debian pour la qualification.

    J'ai vérifié que je faisais appel au bon fichier web.xml avec CATALINA_HOME. J'ai analysé les logs et je remarque quelquechose de bizarre.

    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
     
    Using CATALINA_BASE:   /var/lib/tomcat5.5
    Using CATALINA_HOME:   /usr/share/tomcat5.5
    Using CATALINA_TMPDIR: /var/lib/tomcat5.5/temp
    Using JRE_HOME:       /usr/lib/jvm/java-1.5.0-sun
    14 déc. 2007 13:14:10 org.apache.catalina.core.AprLifecycleListener lifecycleEvent
    INFO: The Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path: /usr/lib/jvm/java-1.5.0-sun-1.5.0.10/jre/lib/i386/server:/usr/lib/jvm/java-1.5.0-sun-1.5.0.10/jre/lib/i386:/usr/lib/jvm/java-1.5.0-sun-1.5.0.10/jre/../lib/i386
    14 déc. 2007 13:14:10 org.apache.coyote.http11.Http11BaseProtocol init
    INFO: Initialisation de Coyote HTTP/1.1 sur http-80
    14 déc. 2007 13:14:10 org.apache.catalina.startup.Catalina load
    INFO: Initialization processed in 727 ms
    14 déc. 2007 13:14:10 org.apache.catalina.core.StandardService start
    INFO: Démarrage du service Catalina
    14 déc. 2007 13:14:10 org.apache.catalina.core.StandardEngine start
    INFO: Starting Servlet Engine: Apache Tomcat/5.5
    14 déc. 2007 13:14:10 org.apache.catalina.core.StandardHost start
    INFO: XML validation disabled
    14 déc. 2007 13:14:10 org.apache.jasper.EmbeddedServletOptions <init>
    ATTENTION: jsp.warning.trimspaces
    14 déc. 2007 13:14:11 org.apache.jasper.EmbeddedServletOptions <init>
    ATTENTION: jsp.warning.trimspaces
    14 déc. 2007 13:14:11 org.apache.jasper.EmbeddedServletOptions <init>
    ATTENTION: jsp.warning.trimspaces
    14 déc. 2007 13:14:11 org.apache.jasper.EmbeddedServletOptions <init>
    ATTENTION: jsp.warning.trimspaces
    14 déc. 2007 13:14:11 org.apache.jasper.EmbeddedServletOptions <init>
    ATTENTION: jsp.warning.trimspaces
    14 déc. 2007 13:14:11 org.apache.jasper.EmbeddedServletOptions <init>
    ATTENTION: jsp.warning.trimspaces
    14 déc. 2007 13:14:11 org.apache.jasper.EmbeddedServletOptions <init>
    ATTENTION: jsp.warning.trimspaces
    14 déc. 2007 13:14:11 org.apache.jasper.EmbeddedServletOptions <init>
    ATTENTION: jsp.warning.trimspaces
    14 déc. 2007 13:14:11 org.apache.jasper.EmbeddedServletOptions <init>
    ATTENTION: jsp.warning.trimspaces

    Avez-vous une piste, je cherche depuis quelques heures déjà et j'avoue ne pas avancer d'un yota.
    Alexandre Tranchant
    Chef de projet AMO pour le Cerema.
    Retrouvez mes articles sur PHP et Symfony

  8. #8
    En attente de confirmation mail

    Homme Profil pro
    Inscrit en
    Juillet 2006
    Messages
    766
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 766
    Points : 1 267
    Points
    1 267
    Par défaut
    Citation Envoyé par nicorama Voir le message
    En l'occurence, pour moi ca ne change rien. Meme arpès avoir rebooté le PC.
    Voici mon fichier web.xml

    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
       <servlet>
            <servlet-name>jsp</servlet-name>
            <servlet-class>org.apache.jasper.servlet.JspServlet</servlet-class>
            <init-param>
                <param-name>fork</param-name>
                <param-value>false</param-value>
            </init-param>
            <init-param>
                <param-name>trimSpaces</param-name>
                <param-value>true</param-value>
            </init-param>
            <init-param>
                <param-name>xpoweredBy</param-name>
                <param-value>false</param-value>
            </init-param>
            <load-on-startup>3</load-on-startup>
        </servlet>
    Les lignes blanches sont génantes pour insérer au préalable une déclaration de doctype xml.
    Et en plus je ne veux pas avoir du code xml avec les morceaux scotchés les uns les autres.
    Bref, l'idéal serait de ne commencer les lignes blanches seulement à la première ligne de texte renvoyé par le navigateur.
    Mais là je crois que je rêve un peu, non ?

    Bon, un an après
    En fait il y a deux web.xml pour le serveur : un dans Program Files : CATALINA_HOME, et un dans c:/document and settings : CATALINA_BASE

    Et il faut modifier celui dans CATALINA_BASE comme je l'ai fait : il y a un mapping de tous les jsp et jspx vers la servlet générique jsp.

  9. #9
    Membre averti
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2005
    Messages
    241
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2005
    Messages : 241
    Points : 399
    Points
    399
    Par défaut
    Bonjour,

    sinon, un ServletFilter qui retirerait les lignes vides pourrait tout aussi bien faire l'affaire, et vous assurer que, quelque-soit le conteneur, le résultat serait le même.

    Cordialement,

Discussions similaires

  1. Rechercher une ligne vide
    Par nico-pyright(c) dans le forum Traitement d'images
    Réponses: 7
    Dernier message: 22/12/2005, 17h10
  2. effacer les lignes vides
    Par Samanta dans le forum Format d'échange (XML, JSON...)
    Réponses: 12
    Dernier message: 30/06/2005, 17h02
  3. TValueListEditor: Ajout automatique d'une ligne vide
    Par Patrick Seuret dans le forum C++Builder
    Réponses: 3
    Dernier message: 24/06/2005, 12h16
  4. [Unix] Purge de lignes vides (blanches)
    Par f@t@l error dans le forum Autres langages
    Réponses: 2
    Dernier message: 15/03/2005, 19h12
  5. [CR .NET] Table croisée: compléter avec lignes vides
    Par kartben dans le forum SAP Crystal Reports
    Réponses: 3
    Dernier message: 29/06/2004, 10h38

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