文系プログラマによるTIPSブログ

文系プログラマ脳の私が開発現場で学んだ事やプログラミングのTIPSをまとめています。

tomcatのtrimSpacesでjsp内に無駄に発生する改行を自動削除する

知ってると便利な機能が実はtomcatにあるのです〜


f:id:treeapps:20180426142529p:plain

tomcatのweb.xmlの設定で、trimSpacesというものをご存知でしょうか。

これは、jsp内でjstlや<%-- コメント --%>等を記述した際に、本来空行表示されてしまうところを、空行を除去してhtmlを描画してくれる機能です。

trimSpaces - Should white spaces in template text between actions or directives be trimmed ?, default false.

http://tomcat.apache.org/tomcat-7.0-doc/jasper-howto.html

これ、defaultがfalseなんです
是非trueにしましょう!
web.xmlを以下のように記述することで、有効にできます。
※ tomcat/conf配下のweb.xmlです。WEB-INF/web.xmlではありません。

        <init-param>
            <param-name>trimSpaces</param-name>
            <param-value>true</param-value>
        </init-param>

これを設定すると、例えば、

あああ
<%-- 111 --%>
<%-- 222 --%>
いいい
<%-- 333 --%>
<%-- 444 --%>
ううう

というコードを書いた場合、trimSpacesがfalse(初期値)の場合、

あああ


いいい


ううう

と表示されます。これがtrueだと、

あああ
いいい
ううう

という表示になります。これでhtmlが多少軽量化されるし、何より不細工なhtmlが描画されなくてすみますね。

ただし、通常のhtmlの改行はtrimされません。

例えば、

あああ

いいい

というhtmlを書いても、空行はそのまま描画されます。

Tomcatハンドブック 第2版

Tomcatハンドブック 第2版