目次へ

10.3. TLDによるスクリプト変数の定義(JSP1.2)

前節ではTagExtraInfoクラスによってスクリプト変数を定義する方法を説明しました。JSP1.2からはTLDによって定義することも可能となっています。JSP1.2に対応したコンテナを用いる場合には、TagExtraInfoクラスによる方法かTLDによる方法かいずれかの方法を採用してください。

スクリプト変数に関する情報は<variable>タグで指定します。<variable>タグは<body-content>より後、<attribute>より前に指定します。スクリプト変数の数だけ続けて指定します。<variable>タグに属性は無く、スクリプト変数に関する情報は全て子要素の値として指定します。以下に子要素の一覧を示します。

<name-given> スクリプト変数の名前が固定的に決まっている場合に指定。スクリプト変数の名前を指定する。<name-from-attribute>かどちらかを指定しなければならない。
<name-from-attribute> スクリプト変数の名前が、カスタムタグの属性の値によって決まる場合に指定。その属性の名前を指定する。<name-given>かどちらかを指定しなければならない。
<variable-class> 変数の型を指定。java.lang.Stringがデフォルト。
<declare> スクリプト変数を新たに定義するか定義済みのものを使うか指定。trueがデフォルト。
<scope> スクリプト変数が使用できるスコープを指定。NESTEDがデフォルト。

以下はTLDファイルに記載した例です。

<taglib>
  ...
  <tag>
    ...
    <body-content>JSP</body-content>
    <variable>
      <name-given>id</name-given>
    </variable>
  </tag>
</taglib>

(実習課題3)

実習課題2においてTagExtraInfoクラスによって定義したスクリプト変数を、TLDによって定義するように変更しなさい。

解答例はこちら

↑このページの先頭へ

こちらもチェック!

PR
  • XMLDB.jp