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.xml
– pom.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.