Supprimer les espaces des sorties jsp

Comment puis-je supprimer les espaces supplémentaires de la sortie des pages jsp? Y at-il un commutateur que je peux retourner sur mon web.xml? Existe-t-il un paramètre spécifique à Tomcat?

Il y a une directive sortingmWhiteSpaces qui devrait accomplir ceci,

Dans votre JSP:

<%@ page trimDirectiveWhitespaces="true" %> 

Ou dans la section jsp-config de votre web.xml (Notez que cela fonctionne à partir de la spécification de servlet 2.5.):

   *.jsp true   

Malheureusement, si vous avez un espace requirejs, vous aurez peut-être besoin de le supprimer, de sorte que vous pourriez avoir besoin d’un espace insuffisant à certains endroits.

Si votre servletcontainer ne prend pas en charge la propriété JSP 2.1 sortingmDirectiveWhitespaces , vous devez consulter sa documentation JspServlet pour tous les parameters d’initialisation. Par exemple, dans Tomcat , vous pouvez également le configurer en définissant sortingmSpaces init-param à true dans JspServlet dans JspServlet de Tomcat:

  sortingmSpaces true  

Une alternative complètement différente est le JTidyFilter . Non seulement il coupe les espaces, mais il formate aussi le HTML dans une indentation correcte.

Le sortingmDirectiveWhitespaces est uniquement pris en charge par les conteneurs de servlets qui prennent en charge JSP 2.1 et après, ou dans le cas ou Tomcat, Tomcat 6 (et certaines versions, par exemple, Tomcat 6.0.10 ne l’implémentent pas correctement. Il y a plus d’informations sur sortingmDirectiveWhitespaces ici:

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

et ici

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

Ce n’est pas directement ce que vous demandez, mais ce qui m’aide, c’est de placer intelligemment des balises de commentaire HTML autour de mes balises jsp et de mettre des espaces à l’intérieur d’une balise de servlet (<%%>):

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

Si vous utilisez des tags, vous pouvez également y appliquer:

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

Et sur votre jsp:

 <%@ page trimDirectiveWhitespaces="true" %> 

Ajoutez / modifiez votre fichier tomcat catalina.properties avec

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

Voir aussi: https://confluence.sakaiproject.org/display/BOOT/Install+Tomcat+7

Vous pouvez aller plus loin et supprimer également les nouvelles lignes (retours chariot) entre les balises HTML au moment de la construction.

Par exemple, changer:

 

Hello

How are you?

dans:

 

Hello

How are you?

Faites cela, utilisez le maven-replacer-plugin pom.xmlpom.xml maven-replacer-plugin et configurez-le dans pom.xml :

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

Cela ne modifiera que les JSP du répertoire de compilation et ne touchera pas les JSP de vos sources.

Vous devrez peut-être adapter le chemin ( ) où se trouvent vos JSP.