JSP リファレンス

<%@tag%>
JSP 2.0 以降

SYNOPSIS

<%@tag
body-content="empty|scriptless|tagdependent"
dynamic-attributes="変数名"
language="java"
import="パッケージ名.*|クラス完全限定名"
pageEncoding="ISO-8859-1|文字エンコーディング"
isELIgnored="true|false"
display-name="表示名"
small-icon="URI"
large-icon="URI"
description="説明"
example="使用例"
deferredSyntaxAllowedAsLiteral="true|false"
trimDirectiveWhitespaces="true|false"
%>

説 明

タグファイルを定義します。

<%@tag%> ディレクティブは <%@page%> ディレクティブと似ていますが、こちらは JSP の文法を使用してカスタムタグを作るタグファイルであることを 示しています。このディレクティブのほとんどの属性は、カスタムタグクラスを TLD (Tag Library Descriptor) に記述するときに指定する情報と同じものです。

属 性

body-content="empty|scriptless|tagdependent"
optional

このタグで囲まれた内容を JSP プロセッサがどう扱えばよいかを定義します。 以下のいずれかを指定することが出来ます。

  1. empty - 内容を許可しない。内容が記述された場合はエラーとなります。
  2. scriptless - カスタムタグや EL、HTML を含む通常の JSP。ただし <%= %> のようなスクリプト構文は許可しない (このため -less という名前)。
  3. tagdependent - SQL などのようにタグ実装に依存するため EL やカスタムタグの処理を行わない。

カスタムタグの TLD で使用できる "JSP" はタグファイルでは使用できないので注意してください。

dynamic-attributes="変数名"
optional

このタグ内で動的属性を使用するための、要素名-値のマップを格納する変数名を指定します。 この名前の変数には Map のインスタンスが格納され EL の変数値として参照する ことができます。

この属性を省略した場合は <%@attribute%> で宣言した属性以外を 受け付けることはできません。またタグファイル内の <%@attribute%><%@variable%> ディレクティブで使用している名前と同じ名前を指定 することは出来ません。

動的属性とはタグファイル内で <%@attribute%> で定義されていない、 呼び出し側で自由に付けられる属性のことです。 この属性を指定したタグファイルは DynamicAttributesJava™ API リファレンス を実装したタグハンドラにコンパイルされます。

language="java"
optional
このタグファイルを記述しているプログラミング言語を示します。 page ディレクティブのものと同じです。
import="パッケージ名.*|クラス完全限定名"
optional
このタグファイル内のスクリプトレットで使用するクラスの import 指定です。 page ディレクティブのものと同じです。
pageEncoding="ISO-8859-1|文字エンコーディング"
optional
このタグファイルの文字エンコーディングです。 page ディレクティブのものと同じです。
isELIgnored="true|false"
optional
このタグファイルの EL を無効にするかを指定します。 page ディレクティブのものと同じです (web.xml でタグファイルの EL を無効にする方法はありません)。
display-name="表示名"
optional
開発ツールなどがこのタグファイルの表示に使用する名前です。 省略時はファイル名から .tag を除いたものが使用されます。
small-icon="URI"
optional
開発ツールなどがこのタグファイルの表示に使用するアイコン (小) の URI です。
large-icon="URI"
optional
開発ツールなどがこのタグファイルの表示に使用するアイコン (大) の URI です。
description="説明"
optional
このタグの説明用テキストを記述する属性です。
example="使用例"
optional
このタグを使うための例を記述します。
deferredSyntaxAllowedAsLiteral="true|false"
JSP 2.1 以降 optional

この JSP の文字列リテラルや変換単位で文字シーケンス #{ を許可するかどうかを 指定します。false を指定した場合、リテラル中に #{ を検出するとコンパイルエラーが 発生します。

trimDirectiveWhitespaces="true|false"
JSP 2.1 以降 optional

テキスト内の空白文字をどう扱うかを指定します。 true を指定した場合、ディレクティブ間の空白のみからなるテキストは出力されません。

JSP やタグファイルの先頭に記述したディレクティブによって、出力結果の先頭に大量の空行が発生するのが 問題になったことはありませんか? このディレクティブに true を指定することでこれを防ぐことができます。

CVS 2008/03/09