Red de conocimiento informático - Material del sitio web - Cómo eliminar espacios y nuevas líneas en HTML generado por JSP

Cómo eliminar espacios y nuevas líneas en HTML generado por JSP

En aplicaciones WEB, si utiliza jsp como plantilla de visualización de la capa de vista, se producirá el problema de espacios/líneas en blanco.

Este problema también me preocupa desde hace mucho tiempo. Porque cuando se utilizan etiquetas EL y otras etiquetas en jsp, se generarán muchos espacios y saltos de línea. Por ejemplo:

Copia el código de la siguiente manera:

------- start ----------

lt; c: elegirgt;

lt;c: cuando test="${fn:length(mainPageList)gt;1amp;}"gt

Algo

lt; /c: cuandogt;

lt; c: de lo contrariogt;

lt; /c: de lo contrariogt; ;/ c: de lo contrario gt;

lt; /c: elegirgt;

lt; /c: test="${fn:length(mainPageListgt;1amp;}". ;

------- end -----------

La salida de este código en Tomcat es la siguiente, pero hay algunos más nuevas líneas

Copie el código de la siguiente manera:

------- inicio ----------

Algo <. /p>

------- end -----------

Por supuesto, generalmente no encontrarás ningún problema sin prestar especial atención. , no importa cuántos espacios y caracteres de nueva línea se generen, el resultado final es el mismo para los navegadores, es decir, la mayoría de los desarrolladores ignoran este problema, pero de hecho estos espacios y nuevas líneas ocupan mucho espacio, y mi experiencia es que; alrededor de 30 de ellos son espacios/nuevas líneas. Algunas personas también dicen que el problema de ancho de banda causado por los espacios se puede resolver si el servidor de red genera html en formato zip. Sí, cuando se usa zip para generar html, los espacios/nuevas líneas se guardarán. atrás, pero esto aumenta el zip, y el mayor problema es que el navegador aún recupera todos los espacios y nuevas líneas al generar la página. Esta es una mala noticia para los desarrolladores de aplicaciones para el usuario que se enfrentan a muchos espacios y código fuente HTML extenso. no puedo encontrar fácilmente el estilo problemático

La siguiente es la solución, tomando Tomcat como ejemplo:

Opción 1, use la función trimSpaces del servidor web. p>Puedes usarlo Tomcat5 y superior, este es el método más simple.

Copie el código de la siguiente manera:

lt;servletgt;

lt;servlet-namegt;jsplt;/servlet-namegt; >lt ;servlet-classgt;org.apache.JspServletlt;/servlet-classgt;

lt;init-paramgt

lt;param-namegt;forklt;/param-namegt;

lt; param-valuegt; /param-valuegt;

lt; /init-paramgt; p>

lt;param-namegt;trimSpaces lt/param-namegt;

lt;param-valuegt;true lt;/param-valuegt

lt;/init -paramgt;

lt; init-paramgt;

lt; nombre del parámetro init gt; -valuegt ;falselt;/param-valuegt;

lt;/init-paramgt;

lt.;load-on-startupgt;3lt;/load-on-startupgt;

lt;/servletgt;

Esta solución tiene la desventaja de que elimina todos los espacios entre las etiquetas jsp EL, lo que puede causar inconvenientes en algunos casos.

Por ejemplo: Tu nombre es ${firstName} ${lastName}.

Por ejemplo: Su nombre es ${firstName}${lastName}: Su nombre es ${firstName} ${lastName} == La salida es ==gt;

El espacio entre las dos variables ${} también desaparece. Es bastante engorroso resolver este problema introduciendo una variable con un solo espacio.

lt; c: set var="one_space"gt; /c: setgt;

Tu nombre es ${firstName}${one_space}${lastName}.

Está bien, pero es problemático. Aunque es posible agregar una variable one_space en lugar de algunas variables globales, el código aún no se ve bien.

Prefiero la opción 2.

Esta opción sólo está disponible para servidores web que soporten jsp 2.1, como Tomcat6.

Jsp2.1 tiene un comando más útil:

Jsp2.1 tiene un comando más útil;

lt; @page trimDirectiveWhitespaces="true" gt;

Este comando puede eliminar líneas en blanco redundantes cuando jsp genera html (el uso de EL y etiquetas en jsp producirá muchos espacios y líneas en blanco), sin el problema de trimSpaces, y ahora la salida jsp también puede se formatee muy bien y se vea muy profesional; siempre he tenido envidia de la plantilla de velocidad en el pasado. El resultado html es muy limpio y hermoso, pero ahora también se puede usar jsp. Ahora jsp también está disponible.

Además, Tomcat6 también tiene algunos problemas de compatibilidad, como la imposibilidad de utilizar el código #{} en jsp porque se ejecutará como un script JSF.

Aunque esto es sólo un pequeño problema, aún debemos prestar atención a los detalles.