Retire o espaço em branco da saída jsp

Como posso retirar espaço em branco extra da saída das páginas jsp? Existe um switch que eu possa usar no meu web.xml? Existe uma configuração específica do Tomcat?

Existe uma diretiva trimWhiteSpaces que deve realizar isso,

No seu JSP:

<%@ page trimDirectiveWhitespaces="true" %> 

Ou na seção jsp-config seu web.xml (Observe que isso funciona a partir da especificação de servlet 2.5.):

   *.jsp true   

Infelizmente, se você tiver um espaço necessário, também poderá precisar de uma faixa, portanto, talvez você precise de um espaço sem quebra em alguns locais.

Se o seu servletcontainer não suportar a propriedade trimDirectiveWhitespaces do JSP 2.1, será necessário consultar a documentação do JspServlet para obter quaisquer parâmetros de boot. No Tomcat , por exemplo, você pode configurá-lo também configurando trimSpaces init-param como true em para JspServlet no JspServlet do Tomcat:

  trimSpaces true  

Uma alternativa completamente diferente é o JTidyFilter . Ele não apenas apara o espaço em branco, mas também formata o HTML em um recuo correto.

O trimDirectiveWhitespaces é suportado apenas por contêineres de servlet que suportam JSP 2.1 e depois, ou no caso ou Tomcat, Tomcat 6 (e algumas versões, por exemplo, Tomcat 6.0.10, não o implementam adequadamente – não sabem sobre os outros). Há mais informações sobre trimDirectiveWhitespaces aqui:

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

e aqui

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

Não diretamente o que você está pedindo, mas o que me ajuda é colocar tags de comentário HTML de uma maneira inteligente em torno de minhas tags jsp e também colocar espaços em branco dentro de uma tag de servlet (<%%>):

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

Se você estiver usando tags, poderá se inscrever lá também:

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

E no seu jsp:

 <%@ page trimDirectiveWhitespaces="true" %> 

Adicione / edite seu arquivo tomcat catalina.properties com

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

Veja também: https://confluence.sakaiproject.org/display/BOOT/Install+Tomcat+7

Você pode ir além e também remover novas linhas (retornos de carro) entre as tags html no momento da criação.

Por exemplo, mudar:

 

Hello

How are you?

para dentro:

 

Hello

How are you?

Faça isso, use o maven-replacer-plugin e configure-o em 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      

Isso apenas modificará as JSPs no diretório de construção e não tocará nas JSPs em suas origens.

Pode ser necessário adaptar o caminho ( ) no qual suas JSPs estão localizadas.