<%@attribute%>
SYNOPSIS
| name*="属性名" |
| required="true|false" |
| flagment="true|false" |
| rtexprvalue="true|false" |
| type="java.lang.String|クラス完全限定名" |
| description="説明" |
説 明
タグファイルに渡すことのできる属性を定義します。
このディレクティブを使用しなくても <%@tag%> に
dynamic-attribute 属性を指定することで任意の属性を受け取る
ことが出来ます。
属 性
このタグで使用する属性の名前を指定します。
同一タグファイル内の他の属性定義と同じ名前を使用することは出来ません。
渡された属性値は page スコープにおける変数としてこの名前で
参照することが出来ます。
JSP プロセッサがタグハンドラを生成する際はこの名前に基づいて getter, setter, インスタンス変数名を決定します。このため以下のような名前は 変換時にコンパイルエラーが発生します。
- ハイフン
-などの Java 識別子に使用できない文字を含んでいる -
returnやint,newなどの Java のキーワードと一致する -
classなどのように上位クラスで定義されているプロパティ名とバッティングする
どうしても使用したい場合は動的属性 を使用してください。
この属性の指定が必須かどうかを指定します。
true を指定した場合、呼び出し側でこの属性を省略することは出来ません。
<%@variable%> の name-from-attribute
にこの属性を指定した場合は必ず true を指定する必要があります。
通常の属性値はタグハンドラ (タグファイルから自動生成したクラス) へ渡される前に
コンテナによって適切な型になるよう変換されますが、fragment="true" を指定した場合、
値をフラグメントとして受け取ることが出来ます。
このフラグメントは <jsp:invoke> を使用して評価/出力することが出来ます。
呼び出し側でフラグメントを属性値として渡すには <jsp:attribute>
を使用します。
true を指定した場合、rtexprvalue, type 属性を
指定することは出来ません。これらはぞれぞれ true,
javax.servlet.jsp.tagext.JspFragment とみなされます。
この属性値に <%= %> によって動的に変化する値を指定できるかどうかを設定します。
TLD ファイルのデフォルトは false であるのに対してこちらは true であることに
注意してください。
<%@variable%> の name-from-attribute
にこの属性を指定した場合は必ず false を指定する必要があります。