JSP リファレンス

<%@attribute%>
JSP 2.0 以降

SYNOPSIS

<%@attribute
name*="属性名"
required="true|false"
flagment="true|false"
rtexprvalue="true|false"
type="java.lang.String|クラス完全限定名"
description="説明"
%>

説 明

タグファイルに渡すことのできる属性を定義します。 このディレクティブを使用しなくても <%@tag%>dynamic-attribute 属性を指定することで任意の属性を受け取る ことが出来ます。

属 性

name="属性名"
required

このタグで使用する属性の名前を指定します。 同一タグファイル内の他の属性定義と同じ名前を使用することは出来ません。 渡された属性値は page スコープにおける変数としてこの名前で 参照することが出来ます。

JSP プロセッサがタグハンドラを生成する際はこの名前に基づいて getter, setter, インスタンス変数名を決定します。このため以下のような名前は 変換時にコンパイルエラーが発生します。

  • ハイフン - などの Java 識別子に使用できない文字を含んでいる
  • returnint, new などの Java のキーワードと一致する
  • class などのように上位クラスで定義されているプロパティ名とバッティングする

どうしても使用したい場合は動的属性 を使用してください。

required="true|false"
optional

この属性の指定が必須かどうかを指定します。 true を指定した場合、呼び出し側でこの属性を省略することは出来ません。

<%@variable%>name-from-attribute にこの属性を指定した場合は必ず true を指定する必要があります。

flagment="true|false"
optional

通常の属性値はタグハンドラ (タグファイルから自動生成したクラス) へ渡される前に コンテナによって適切な型になるよう変換されますが、fragment="true" を指定した場合、 値をフラグメントとして受け取ることが出来ます。 このフラグメントは <jsp:invoke> を使用して評価/出力することが出来ます。

呼び出し側でフラグメントを属性値として渡すには <jsp:attribute> を使用します。

true を指定した場合、rtexprvalue, type 属性を 指定することは出来ません。これらはぞれぞれ true, javax.servlet.jsp.tagext.JspFragment とみなされます。

rtexprvalue="true|false"
optional

この属性値に <%= %> によって動的に変化する値を指定できるかどうかを設定します。 TLD ファイルのデフォルトは false であるのに対してこちらは true であることに 注意してください。

<%@variable%>name-from-attribute にこの属性を指定した場合は必ず false を指定する必要があります。

type="java.lang.String|クラス完全限定名"
optional

属性値として受け取る型を指定します。 int, boolean などのプリミティブ型は指定できません。

description="説明"
optional
この属性の説明用テキストを記述する属性です。
CVS 2008/03/09