Jspページの出力から余分な空白を削除するにはどうすればよいですか? web.xmlで反転できるスイッチはありますか? Tomcat固有の設定はありますか?
これを実現するtrimWhiteSpacesディレクティブがあり、
JSPで:
<%@ page trimDirectiveWhitespaces="true" %>
または、web.xmlのjsp-configセクションで(これはサーブレット仕様2.5以降で機能することに注意してください)。
<jsp-config>
<jsp-property-group>
<url-pattern>*.jsp</url-pattern>
<trim-directive-whitespaces>true</trim-directive-whitespaces>
</jsp-property-group>
</jsp-config>
残念ながら、必要なスペースがある場合は、ストリップも必要になる可能性があります。そのため、一部の場所には中断しないスペースが必要になる場合があります。
サーブレットコンテナがJSP 2.1 trimDirectiveWhitespaces
プロパティをサポートしていない場合、初期化パラメータについてはJspServlet
ドキュメントを参照する必要があります。たとえば Tomcat では、Tomcatの/conf/web.xml
のtrimSpaces
に対してtrue
init-paramをJspServlet
に設定することで設定することもできます。
<init-param>
<param-name>trimSpaces</param-name>
<param-value>true</param-value>
</init-param>
完全に異なる選択肢は JTidyFilter です。空白を切り取るだけでなく、正しいインデントでformatsHTMLもトリミングします。
TrimDirectiveWhitespacesは、JSP 2.1以降またはTomcatまたはTomcat 6をサポートするサーブレットコンテナでのみサポートされます(一部のバージョン、たとえばTomcat 6.0.10では適切に実装されません。他のバージョンについては知りません)。 trimDirectiveWhitespacesの詳細については、こちらをご覧ください。
http://www.Oracle.com/technetwork/articles/javaee/jsp-21-136414.html
そしてここ
タグを使用している場合は、そこにも適用できます。
<%@ tag description="My Tag" trimDirectiveWhitespaces="true" %>
そして、あなたのjspで:
<%@ page trimDirectiveWhitespaces="true" %>
直接あなたが求めているものではありませんが、私のjspタグの周りに巧妙な方法でHTMLコメントタグを配置し、またサーブレットタグ(<%%>)内に空白を配置するのに役立ちます:
${"<!--"}
<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>
トリム機能を使用してください、例
fn:trim(string1)
さらに一歩進んで、ビルド時にhtmlタグ間の改行(キャリッジリターン)を削除することもできます。
例えば。変化する:
<p>Hello</p>
<p>How are you?</p>
に:
<p>Hello</p><p>How are you?</p>
それを行うには、maven-replacer-plugin
を使用し、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>
これにより、ビルドディレクトリ内のJSPのみが変更され、ソース内のJSPは変更されません。
JSPが置かれているパス(<filesToInclude>
)を調整する必要がある場合があります。
Tomcatを追加/編集しますcatalina.properties
ファイル
org.Apache.jasper.compiler.Parser.STRICT_QUOTE_ESCAPING=false
参照: https://confluence.sakaiproject.org/display/BOOT/Install+Tomcat+7