Ce comportement peut également être éliminé dans une certaine mesure en définissant la propriété JSP 2.1 trimDirectiveWhitespaces
à true
. Cela peut être activé dans les fichiers JSP individuels par:
<%@page trimDirectiveWhitespaces="true" %>
Ou sur tous fichiers JSP par l'entrée suivante dans web.xml
(qui doit être déclarée 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>
En pré -JSP 2.1 conteneurs ou dans les conteneurs JSP 2.1 qui ne supporte pas cela pour certaines raisons internes, telles que Tomcat, vous devez consulter sa documentation JspServlet
pour tous les paramètres d'initialisation. Dans par exemple Tomcat, vous pouvez le configurer et en définissant la trimSpaces
init-PARAM JspServlet
à true
dans /conf/web.xml
de Tomcat:
<init-param>
<param-name>trimSpaces</param-name>
<param-value>true</param-value>
</init-param>
A pris note devrait être que les approches les deux ne « reformater » pas vraiment le code HTML . En fait, il ne fait que réduire l'espace laissé par taglibs et scriptlets. Voir également this Sun article. Ainsi, par exemple les éléments suivants ..
<ul>
<c:forEach items="${list}" var="item">
<li>${item}</li>
</c:forEach>
</ul>
..would essentiellement en fin
<ul>
<li>item1</li>
<li>item2</li>
<li>item3</li>
</ul>
Ainsi avec double indentation. Vous pouvez effectivement contourner ce reformater le code en tant que tels que les balises JSP sont demi-dentelée:
<ul>
<c:forEach items="${list}" var="item">
<li>${item}</li>
</c:forEach>
</ul>
Mais je pense que JTidyFilter est plus facile ici :)
Très cool. Merci d'avoir répondu!!! – Freiheit
Je voudrais aussi noter que JTidyFilter est encore un peu rude, sans version officielle. Vous devez le télécharger depuis les nightlies de JTidy à: http://jtidy.sourceforge.net/nightly/ – Freiheit