Jsp sayfalarının çıktısından fazladan boşlukları nasıl çıkarabilirim? Web.xml dosyamda çevirebileceğim bir anahtar var mı? Tomcat'e özgü bir ayar var mı?
Jsp sayfalarının çıktısından fazladan boşlukları nasıl çıkarabilirim? Web.xml dosyamda çevirebileceğim bir anahtar var mı? Tomcat'e özgü bir ayar var mı?
Yanıtlar:
Bunu başarması gereken bir trimWhiteSpaces yönergesi var,
JSP'nizde:
<%@ page trimDirectiveWhitespaces="true" %>
Veya jsp-config bölümünde web.xml dosyanız (Bunun sunucu uygulaması 2.5'ten başlayarak çalıştığını unutmayın.):
<jsp-config>
<jsp-property-group>
<url-pattern>*.jsp</url-pattern>
<trim-directive-whitespaces>true</trim-directive-whitespaces>
</jsp-property-group>
</jsp-config>
Maalesef, gerekli bir alanınız varsa, onu da soymanız gerekebilir, bu nedenle bazı yerlerde kesintisiz bir alana ihtiyacınız olabilir.
web.xml
: <init-param> <param-name> trimSpaces </param-name> <param-value> true </param-value> </init-param>
Sunucu kapsayıcınız JSP 2.1 trimDirectiveWhitespaces
özelliğini desteklemiyorsa, JspServlet
herhangi bir başlatma parametresi için onun belgelerine bakmanız gerekir . Örnek için ise Tomcat , sen ayarlayarak yanı yapılandırabilirsiniz trimSpaces
için init-param true
için de JspServlet
Tomcat en in /conf/web.xml
:
<init-param>
<param-name>trimSpaces</param-name>
<param-value>true</param-value>
</init-param>
Tamamen farklı bir alternatif JTidyFilter'dir . Yalnızca boşlukları kesmekle kalmaz, aynı zamanda HTML'yi doğru girintide biçimlendirir .
TrimDirectiveWhitespaces yalnızca JSP 2.1 ve sonrasını veya durumunda veya Tomcat, Tomcat 6'yı destekleyen sunucu uygulaması kapsayıcıları tarafından desteklenir (ve Tomcat 6.0.10 gibi bazı sürümler bunu düzgün bir şekilde uygulamaz - diğerlerini bilmiyorum). TrimDirectiveWhitespaces hakkında daha fazla bilgiyi burada bulabilirsiniz:
http://www.oracle.com/technetwork/articles/javaee/jsp-21-136414.html
ve burada
Doğrudan istediğiniz şey değil, ama bana yardımcı olan şey, HTML yorum etiketlerini akıllıca bir şekilde jsp etiketlerimin etrafına yerleştirmek ve ayrıca bir sunucu uygulaması etiketinin (<%%>) içine boşluk koymak:
${"<!--"}
<c:if test="${first}">
<c:set var="extraClass" value="${extraClass} firstRadio"/>
</c:if>
<c:set var="first" value="${false}"/>
${"-->"}<%
%><input type="radio" id="input1" name="dayChooser" value="Tuesday"/><%
%><label for="input1" class="${extraClass}">Tuesday</label>
Bir adım daha ileri gidebilir ve ayrıca derleme zamanında html etiketleri arasındaki yeni satırları (satır başları) kaldırabilirsiniz.
Örneğin, değişiklik:
<p>Hello</p>
<p>How are you?</p>
içine:
<p>Hello</p><p>How are you?</p>
Bunu yapın, kullanın maven-replacer-plugin
ve şurada kurun pom.xml
:
<plugin>
<groupId>com.google.code.maven-replacer-plugin</groupId>
<artifactId>replacer</artifactId>
<version>1.5.3</version>
<executions>
<execution>
<id>stripNewlines</id>
<phase>prepare-package</phase>
<goals>
<goal>replace</goal>
</goals>
<configuration>
<basedir>${project.build.directory}</basedir>
<filesToInclude>projectname/WEB-INF/jsp/**/*.jsp</filesToInclude>
<token>>\s*<</token>
<value>><</value>
<regexFlags>
<regexFlag>MULTILINE</regexFlag>
</regexFlags>
</configuration>
</execution>
</executions>
</plugin>
Bu, yalnızca yapı dizinindeki JSP'leri değiştirecek ve kaynaklarınızdaki JSP'lere dokunmayacaktır.
<filesToInclude>
JSP'lerinizin bulunduğu yolu ( ) uyarlamanız gerekebilir .
Lütfen kırpma işlevini kullanın, örnek
fn:trim(string1)
Tomcat catalina.properties
dosyanızı şununla ekleyin / düzenleyin:
org.apache.jasper.compiler.Parser.STRICT_QUOTE_ESCAPING=false
Ayrıca bkz .: https://confluence.sakaiproject.org/display/BOOT/Install+Tomcat+7