Elimina gli spazi bianchi dall’output di jsp

Come posso eliminare spazi bianchi extra dall’output di jsp pages? C’è un interruttore che posso lanciare sul mio web.xml? Esiste un’impostazione specifica di Tomcat?

C’è una direttiva trimWhiteSpaces che dovrebbe realizzare questo,

Nel tuo JSP:

<%@ page trimDirectiveWhitespaces="true" %> 

Oppure nella sezione jsp-config del tuo web.xml (nota che funziona a partire dalla specifica 2.5 del servlet):

   *.jsp true   

Sfortunatamente, se si dispone di uno spazio richiesto, potrebbe essere necessario anche eliminarlo, quindi in alcuni punti potrebbe essere necessario uno spazio non interrotto.

Se il contenitore servlet non supporta la proprietà trimDirectiveWhitespaces JSP 2.1, è necessario consultare la documentazione di JspServlet per qualsiasi parametro di inizializzazione. Ad esempio, in Tomcat , puoi configurarlo anche impostando trimSpaces init-param su true in per JspServlet in JspServlet di Tomcat:

  trimSpaces true  

Un’alternativa completamente diversa è JTidyFilter . Non solo taglia gli spazi bianchi, ma anche i formati HTML in una rientranza corretta.

TrimDirectiveWhitespaces è supportato solo dai contenitori servlet che supportano JSP 2.1 e successivamente, o nel caso o Tomcat, Tomcat 6 (e alcune versioni, ad es. Tomcat 6.0.10, non lo implementano correttamente, non conoscono gli altri). Ci sono ulteriori informazioni su trimDirectiveWhitespaces qui:

http://www.oracle.com/technetwork/articles/javaee/jsp-21-136414.html

e qui

http://raibledesigns.com/rd/entry/trim_spaces_in_your_jsp1

Non direttamente quello che stai chiedendo, ma ciò che mi aiuta è mettere tag di commento HTML in modo intelligente attorno ai miei tag jsp, e anche mettere spazi bianchi all’interno di un tag servlet (<%%>):

 ${""}<% %><% %> 

Se stai utilizzando i tag, puoi applicare anche lì:

 <%@ tag description="My Tag" trimDirectiveWhitespaces="true" %> 

E sul tuo jsp:

 <%@ page trimDirectiveWhitespaces="true" %> 

Aggiungi / modifica il tuo file catalina.properties tomcat con

 org.apache.jasper.compiler.Parser.STRICT_QUOTE_ESCAPING=false 

Vedi anche: https://confluence.sakaiproject.org/display/BOOT/Install+Tomcat+7

Puoi fare un ulteriore passo avanti e rimuovere anche le nuove righe (ritorni a capo) tra i tag html al momento della compilazione.

Per esempio cambia:

 

Hello

How are you?

in:

 

Hello

How are you?

Fallo, usa il maven-replacer-plugin pom.xml maven-replacer-plugin e configuralo in pom.xml :

  com.google.code.maven-replacer-plugin replacer 1.5.3   stripNewlines prepare-package  replace   ${project.build.directory} projectname/WEB-INF/jsp/**/*.jsp >\s*< ><  MULTILINE      

Questo modificherà solo i JSP nella directory build e non toccherà i JSP nelle tue fonti.

Potrebbe essere necessario adattare il percorso ( ) in cui si trovano i JSP.