読者です 読者をやめる 読者になる 読者になる

この日記は私的なものであり所属会社の見解とは無関係です。 GitHub: takahashikzn

JSPコンパイル済みのJavaソースから不要な空白を取り除く

JSPコンパイル済みのJavaソースを覗いてみると、
何気に次のようなコードが大量に含まれています。

    out.write("Hello!!");
    out.write("  ");
    out.write("\r\n");
    out.write("  ");
    out.write("\r\n");
    out.write("  ");
    out.write("\r\n");
    out.write("  ");
    out.write("\r\n");


空白を出力しているコードが完全に無駄ですね。
そんなときは、web.xmlにこう書けばOK。余計なコードはきれいさっぱり消えてくれます。

  <jsp-config>
    <jsp-property-group>
      <url-pattern>*.jsp</url-pattern>
      <trim-directive-whitespaces>true</trim-directive-whitespaces>
    </jsp-property-group>
  </jsp-config>

注意点

例えば、JSP

aaa<br>
□     (← 全角空白)
bbb

としたときに、全角空白が消えてしまいます。
trim-directive-whitespacesは、全角空白も空白文字とみなすようです。


この場合、こんな感じで逃げるといいかも。

aaa<br>
<s:property value="'□'" />
bbb