Ce problème m'a également dérangé pendant longtemps. Car lors de l'utilisation de balises EL et d'autres balises en jsp, un grand nombre d'espaces et de sauts de ligne seront générés :
------- start ---------- <c:choose> <c:when test="${fn:length(mainPageList)>1&}"> Something </c:when> <c:otherwise> Others </c:otherwise> </c:choose> ------- end -----------
Ce paragraphe. La sortie du code sur Tomcat est la suivante, avec quelques lignes et sauts de ligne supplémentaires.
------- start ---------- Something ------- end -----------
Bien sûr, vous ne rencontrerez généralement aucun problème sans y prêter une attention particulière. Après tout, quel que soit le nombre d'espaces et de sauts de ligne générés, l'effet final généré par le navigateur sera le même. . C'est pourquoi la plupart des développeurs ignorent ce problème ; mais en fait, ces espaces et sauts de ligne prennent beaucoup de place. D'après mon expérience, environ 30 % sont des espaces/sauts de ligne. Certaines personnes disent également que lorsque le serveur Web génère du HTML au format zip, le problème de bande passante causé par les espaces peut être résolu ; oui, lorsque le zip est utilisé pour générer du HTML, l'espace pour les espaces/sauts de ligne sera économisé, mais cela augmentera la charge de travail. de zip est énorme, et le plus gros problème est que lorsque le navigateur génère la page, il restaurera toujours tous les espaces et sauts de ligne. C'est une mauvaise nouvelle pour les développeurs front-end. Face à un grand nombre d'espaces et à un code source HTML long, il n'est pas facile de trouver l'emplacement du style problématique.
Parlons de la solution ci-dessous, en prenant Tomcat comme exemple :
Option 1, utilisez la fonction trimSpaces du serveur web.
Les versions Tomcat5 et supérieures peuvent être utilisées. C'est la méthode la plus simple.
<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>
Cette solution présente un inconvénient. Elle supprimera les nouvelles lignes et les espaces entre toutes les balises EL jsp, ce qui peut également causer des désagréments dans certains cas.
Par exemple : Votre nom est ${firstName} ${lastName} ==La sortie est==> Votre nom est firstNamelastName
L'espace entre les deux variables ${} disparaîtra également. Résoudre ce problème est assez difficile, introduire une variable avec un seul espace.
Votre nom est ${firstName}${one_space}${lastName}
C'est normal, problème. Bien que vous puissiez ajouter une variable one_space à certaines variables globales, le code n'a toujours pas l'air bien.
Option 2, je préfère.
Cette solution ne peut être utilisée que sur les serveurs Web prenant en charge jsp 2.1, tels que Tomcat6.
Jsp2.1 a une commande très utile ;
<%@ page trimDirectiveWhitespaces="true" %>
Cette commande peut supprimer les lignes vides supplémentaires lorsque jsp génère du HTML (sur jsp, l'utilisation de EL et des balises le fera produire beaucoup d'espaces et de lignes vides), il n'y a aucun problème avec l'utilisation de trimSpaces. Maintenant, le code HTML de sortie jsp peut être bien formaté et a un aspect professionnel ; j'ai toujours été envieux des modèles de vitesse dans le passé, et le code HTML de sortie est très propre. et magnifique, maintenant jsp est également disponible.
De plus, Tomcat6 a quelques problèmes de compatibilité. Par exemple, vous ne pouvez pas utiliser du code comme #{} dans jsp car il sera exécuté comme un script JSF.
Bien qu'il s'agisse d'un petit problème, nous devons quand même faire attention aux détails.
Pour plus d'articles connexes sur la façon de supprimer un grand nombre d'espaces et de sauts de ligne générés lorsque JSP génère du HTML, veuillez faire attention au site Web chinois de PHP !