JSPの上のほうに書く@page contentTypeやカスタムタグの宣言を省略する

きっかけ
JSPを作成する際に上のほうに↓のような宣言をよくかきますよね。。



<%@ page contentType="text/html;charset=UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>


これをどのすべてのJSPファイルに書くのは面倒だし重複コードになる気がしたので、どうにか省略できる方法はないかと探したら見つけたので、メモしておきます。

<%@ page contentType="text/html;charset=UTF-8"%>の省略
これは、以下のページを見るとわかります。

http://docs.oracle.com/cd/E18355_01/web.1013/B31860-01/jspnls.htm

pageディレクティブでのコンテンツ・タイプの設定

あたり


呼んでいくと
contentTypeエンコーディングを指定しない
かつ
pageEncodingを指定
した場合、contentTypeエンコーディングは、pageEncodingを指定 に従うとあるので、pageEncodingをweb.xmlのjsp-configにて、設定してあげれば、省略することが出来ます。

例えば、①の@pageタグを省略したい場合は、jsp-configには②のように書きます。


<%@ page contentType="text/html;charset=UTF-8"%>



<jsp-property-group>
<url-pattern>*.jsp</url-pattern>
<page-encoding>UTF-8</page-encoding>
</jsp-property-group>
</jsp-config>

これで、あえて、@pageタグを記載しなければ、すべてのJSPページのcontextTypeは
"text/html;charset=UTF-8"
となります。(JSPファイルの場合、text/html;はデフォルトで付与されるそうです)

カスタムタグの宣言を省略
以下のページに書いてありました。
http://www.atmarkit.co.jp/fjava/javatips/119jspservlet39.html

jsp-configの
include-preludタグを使えばすべてのJSPの上部に任意のJSPを設定できるようです。

で、include-preludタグにカスタムタグの宣言だけ書いてあるJSPを指定すれば、すべてのJSPの上部にカスタムタグの宣言が挿入されるってことです!

ecilpseでjspを作成する際に、このタグを設定してから保管機能(Ctrl+SPとか)を使うと宣言したカスタムタグが保管されるので、便利です。


これでJSPの上のほうがすっきり!

  • Digg
  • Del.icio.us
  • StumbleUpon
  • Reddit
  • Twitter
  • RSS

0 Response to "JSPの上のほうに書く@page contentTypeやカスタムタグの宣言を省略する"

コメントを投稿