Struts 22章 Tilesタグライブラリ
22.2. getAsStringタグ/insertタグ/getタグ
getAsString タグは指定したオブジェクトの値を文字列として出力するタグです。タイトルやヘッダ・フッタの出力に便利です。以下に getAsString タグの属性を示します。
属性名 | 必須 | スクリプト 可能 |
説明 |
---|---|---|---|
ignore | ○ | true を指定すると name 属性で指定したオブジェクトが存在しない場合にもエラーが発生しません。デフォルトは、false です。 | |
name | ○ | ○ | 出力したい文字列を保持するオブジェクト名を指定します。 |
role | ○ | このタグを実行するのに必要な role があれば指定します。 |
insert タグ / get タグはタイル等をページに挿入するタグです。get タグは insert タグの一部の機能をサポートし、Template タグライブラリとの互換性を保つために用意されているものです。特に理由がない限り insert タグを利用するのがよいでしょう。insert タグの属性は以下の通りで、attribute, definition, name, page, beanName 属性のうちいずれか 1つを指定する必要があります。
属性名 | 必須 | スクリプト 可能 |
説明 |
---|---|---|---|
attribute | △ | 定義ファイル等で定義された挿入対象となる Tile の名前を指定します。 | |
beanName | △ | ○ | 挿入対象となるコンポーネントの名前を指定するのに使用される JavaBean の名前を指定します。 |
beanProperty | ○ | beanName 属性で指定した JavaBean のプロパティを指定します。 | |
beanScope | JavaBean をサーチするスコープを指定します。スコープは、任意の JSP スコープ、component、template を指定することができ、デフォルトは page スコープです。 | ||
definition | △ | ○ | 挿入する定義名を指定します。 |
flush | ページの出力ストリームを挿入前にフラッシュするかどうかを true または false で指定します。 | ||
ignore | ○ | true を指定すると name 属性で指定したオブジェクトが存在しない場合にもエラーが発生しません。デフォルトは false です。 | |
name | △ | ○ | 挿入するエンティティの名前を指定します。definition, attribute, page の順に検索が行われます。 |
page | △ | ○ | 挿入するタイルまたはテンプレートの URI を WEB アプリケーションルートからの絶対パスまたは相対パスで指定します。 |
role | ○ | このタグを実行するのに必要な role があれば指定します。 |
get タグではこのうち flush, ignore, name, role 属性を指定可能です。ただし、name, ignore 属性が以下のように insert タグとは動作が異なります。
属性名 | 必須 | スクリプト 可能 |
説明 |
---|---|---|---|
ignore | ○ | true を指定すると name 属性で指定したオブジェクトが存在しない場合にもエラーが発生しません。デフォルトは true です。 | |
name | ○ | ○ | 挿入するオブジェクトの名前を指定します。検索は tile コンテキストから行われます。 |
19章2節の例は以下のようにすることが可能です。
...
<table width="100%">
<!-- ヘッダ部 -->
<tr><td colspan="2"><tiles:getAsString name="title" /></td></tr>
<tr>
<!-- メニュー部 -->
<td width="20%"><tiles:insert name="menu" /></td>
<!-- コンテンツ部 -->
<td><tiles:insert name="content" /></td>
</tr>
<!-- フッタ部 -->
<tr><td colspan="2"><tiles:insert name="/WEB-INF/jsp/footer.html" /></td></tr>
</table>
...
(実習課題2)
19章の実習課題3で作成した Web アプリケーションを改良しなさい。
- insert タグの beanName, name 属性を使用し、page, attribute 属性は使用しないこと。