que - tag jsp java
Elimine el espacio en blanco de la salida jsp (7)
Agregue / edite su archivo tomcat catalina.properties
con
org.apache.jasper.compiler.Parser.STRICT_QUOTE_ESCAPING=false
Ver también: https://confluence.sakaiproject.org/display/BOOT/Install+Tomcat+7
¿Cómo puedo eliminar el espacio en blanco adicional de la salida de las páginas jsp? ¿Hay algún cambio que pueda cambiar en mi web.xml? ¿Hay alguna configuración específica de Tomcat?
El trimDirectiveWhitespaces solo es compatible con contenedores de servlets que soportan JSP 2.1 y después, o en el caso de Tomcat, Tomcat 6 (y algunas versiones, por ejemplo, Tomcat 6.0.10 no lo implementan correctamente, no conocen las demás). Hay más información sobre trimDirectiveWhitespaces aquí:
http://www.oracle.com/technetwork/articles/javaee/jsp-21-136414.html
y aquí
Hay una directiva trimWhiteSpaces que debe lograr esto,
En tu JSP:
<%@ page trimDirectiveWhitespaces="true" %>
O en la sección jsp-config su web.xml (tenga en cuenta que esto funciona a partir de la especificación de servlet 2.5):
<jsp-config>
<jsp-property-group>
<url-pattern>*.jsp</url-pattern>
<trim-directive-whitespaces>true</trim-directive-whitespaces>
</jsp-property-group>
</jsp-config>
Desafortunadamente, si tiene un espacio requerido, también podría necesitar quitarlo, por lo que es posible que necesite un espacio sin interrupciones en algunos lugares.
No directamente lo que está pidiendo, pero lo que me ayuda es poner etiquetas de comentarios HTML de una manera inteligente alrededor de mis etiquetas jsp, y también poner espacios en blanco dentro de una etiqueta de servlet (<%%>):
${"<!--"}
<c:if test="${first}">
<c:set var="extraClass" value="${extraClass} firstRadio"/>
</c:if>
<c:set var="first" value="${false}"/>
${"-->"}<%
%><input type="radio" id="input1" name="dayChooser" value="Tuesday"/><%
%><label for="input1" class="${extraClass}">Tuesday</label>
Puede ir un paso más allá y también eliminar las nuevas líneas (retornos de carro) entre las etiquetas html en tiempo de compilación.
Por ejemplo, cambio
<p>Hello</p>
<p>How are you?</p>
dentro:
<p>Hello</p><p>How are you?</p>
Haz eso, utiliza el maven-replacer-plugin
y pom.xml
en pom.xml
:
<plugin>
<groupId>com.google.code.maven-replacer-plugin</groupId>
<artifactId>replacer</artifactId>
<version>1.5.3</version>
<executions>
<execution>
<id>stripNewlines</id>
<phase>prepare-package</phase>
<goals>
<goal>replace</goal>
</goals>
<configuration>
<basedir>${project.build.directory}</basedir>
<filesToInclude>projectname/WEB-INF/jsp/**/*.jsp</filesToInclude>
<token>>/s*<</token>
<value>><</value>
<regexFlags>
<regexFlag>MULTILINE</regexFlag>
</regexFlags>
</configuration>
</execution>
</executions>
</plugin>
Esto solo modificará las JSP en el directorio de construcción, y no tocará las JSP en sus fuentes.
Es posible que necesite adaptar la ruta ( <filesToInclude>
) donde se encuentran sus JSP.
Si su servletcontainer no admite la propiedad JSP 2.1 trimDirectiveWhitespaces
, debe consultar su documentación JspServlet
para conocer los parámetros de inicialización. En, por ejemplo, Tomcat , puede configurarlo también configurando trimSpaces
init-param en true
in para JspServlet
en JspServlet
de Tomcat:
<init-param>
<param-name>trimSpaces</param-name>
<param-value>true</param-value>
</init-param>
Una alternativa completamente diferente es JTidyFilter . No solo recorta el espacio en blanco, sino que también formatea HTML en una sangría correcta.
Si usa etiquetas, puede aplicar allí también:
<%@ tag description="My Tag" trimDirectiveWhitespaces="true" %>
Y en tu jsp:
<%@ page trimDirectiveWhitespaces="true" %>