2012年2月27日月曜日

Struts2 + Spring + mybatis! jspの最初の部分を1つのファイルにまとめる

web.xmlの中で、こんな風に書いた。
  <jsp-config>
    <jsp-property-group>
      <url-pattern>*.jsp</url-pattern>
      <el-ignored>false</el-ignored>
      <page-encoding>UTF-8</page-encoding>
      <scripting-invalid>false</scripting-invalid>
      <include-prelude>/WEB-INF/include/jsp_header.jsp</include-prelude>
    </jsp-property-group>
  </jsp-config>

ここで、"include-prelude"とは、すべてのJSPファイルの先頭に挿入したいコードを記述したファイルを指定する。pageやtaglib宣言なんかにうってつけ。
そこで、 このファイルをこのようにした。

jsp_header.jsp
<%@ page contentType="text/html; UTF-8" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="f" uri="http://java.sun.com/jsp/jstl/functions" %>
<%@ taglib prefix="s" uri="/struts-tags" %>
 
コンテンツタイプをtext/html、出力文字コードをUTF-8にする宣言と、あとはよく使うJSTLとStruts2のタグのtaglib宣言。これで、各JSPファイルにいちいち書いて回る必要がなくなる。

ちなみに、すべてのJSPの末尾に特定のコードを挿入したい場合は、同じようなノリで"include-coda"を使う。
"prelude"に"coda"。このネーミングセンスはよいなぁと思う。