tag que ejemplo custom jsp tomcat whitespace

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?



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>&gt;/s*&lt;</token> <value>&gt;&lt;</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" %>