22. Tilesタグライブラリ
22.1. useAttributeタグ/importAttributeタグ
この章ではTilesタグライブラリについて説明します。既に幾つかのタグを使用していますが、整理もかねて説明します。またTilesタグライブラリのタグは、Tiles設定ファイルのタグと対応しているものが多いので、それらとあわせて説明します。
useAttributeタグ/importAttributeタグは、Tilesの組み合わせに設定されているオブジェクトを読み込むタグです。このタグを使用することによって、組み合わせに設定されているオブジェクトが、他のタグライブラリから使用可能になります。importAttributeタグは、読み込んだオブジェクトを指定したスコープに登録します。useAttributeタグは指定したスコープに登録し、かつそのオブジェクトを指定したスクリプト変数で扱えるようにします。
useAttributeタグ/importAttributeタグに共通の属性を以下に示します。
属性名 | 必須 | スクリプト 可能 |
説明 |
---|---|---|---|
name |
○ | ○ |
Tilesの組み合わせから、読み込むオブジェクトの名前を指定。 |
scope |
○ |
読み込んだオブジェクトを登録するスコープを指定。デフォルトは「page」スコープ。 |
|
ignore |
○ |
この属性の値が「true」に設定されると、指定したオブジェクトが無かった場合にもエラーが発生しません。デフォルトは「false」ですので、オブジェクトが無いとエラーが発生します。 |
useAttributeタグに定義されている属性を以下に示します。
属性名 | 必須 | スクリプト 可能 |
説明 |
---|---|---|---|
id |
スクリプト変数の名前を指定。指定しなかった場合には、「name」属性の値がスクリプト変数の名前になる。 |
||
classname |
スクリプト変数の型を指定。デフォルトは「java.lang.Object」。 |
20章3節で定義した文字列のリストを出力するJSPページは、useAttributeタグを使用して以下のように変更することができます。
<tiles:useAttribute name="textList" classname="java.util.List"> <% for(int i=0; i<textList.size(); i++){ %> <%=textList.get(i) %> <% } %>
(実習課題1)
20章2節のWebアプリケーションを改良しなさい。
- メニューを表示する部分を、<tiles:useAttribute>タグとスクリプトだけで実現すること。