Struts Tilesタグ・ライブラリ

これは、Struts Tilesタグ・ライブラリの開発者ガイドです。この項には、Apache Software Foundation(http://www.apache.org/)およびそれ以外のサード・パーティによって作成されたドキュメントが含まれます。

このタグ・ライブラリは、tilesタグを提供します。

タイルは、以前はコンポーネントと呼ばれていました。これまでの経緯から、名前、ページ、コンポーネントおよびテンプレートは、タイルを設計する際に区別なく使用されています。また、タグと属性名の多くが、下位互換性の維持のために残されています。

このライブラリで定義されるタグの詳細は、関連ドキュメントを確認してください。

タグ名 説明
add 囲んでいるリストに要素を追加します。リスト要素に使用することを除けば、putと同じものです。
definition タイル(コンポーネント、テンプレート)の定義Beanを作成します。
get putタグにより配置されたコンテンツをリクエスト・スコープから取得します。
getAsString 指定したタイル(コンポーネント、テンプレート)の属性値を現在のJspWriterにレンダリングします。
importAttribute 指定したコンテキストにタイルの属性をインポートします。
initComponentDefinitions タイル(コンポーネント)の定義ファクトリを初期化します。
insert タイル(コンポーネント、テンプレート)を挿入します。
put タイル(コンポーネント、テンプレート)のコンテキストに属性を配置します。
putList タイルに属性として渡されるリストを宣言します。
useAttribute ページ内で属性値を使用します。

Struts Tilesタグ・ライブラリ<tiles:add>タグ

囲んでいるリストに要素を追加します。リスト要素に使用することを除けば、putと同じものです。

囲んでいるリストに要素を追加します。このタグは、putListタグの内部でのみ使用できます。値は、直接割り当てる(value="aValue")か、Beanから取得します。valueまたはbeanNameのいずれかが存在する必要があります。

属性名 説明
beanName 値として使用されるBeanの名前。Beanは、指定したコンテキストから取得されます(存在する場合)。存在しない場合、pageContext.findAttributeメソッドが使用されます。beanPropertyを指定する場合、値は対応するBeanプロパティから取得されます。(RT EXPR)
beanProperty Beanプロパティの名前。指定する場合、値はこのプロパティから取得されます。ネストされたプロパティと索引付きプロパティがサポートされます。(RT EXPR)
beanScope Beanの検索先となるスコープ。指定しない場合、pageContext.findAttributeメソッドが使用されます。スコープには、任意のJSPスコープ、componentまたはtemplateを指定できます。componentまたはtemplateの場合、Beanはタイル(コンポーネント、テンプレート)のコンテキスト内で検索されます。
content 要素の値。文字列またはオブジェクトを指定します。valueのシノニムです。JSPテンプレートとの互換性のために追加された属性です。(RT EXPR)
direct コンテンツの処理方法を指定します。trueに設定するとコンテンツは直接出力されます。false(デフォルト)に設定するとコンテンツはインクルードされます。この属性は、コンテンツ・タイプを指定する別の方法になります。directがtrueの場合、コンテンツは文字列(string)になり、falseの場合、コンテンツはページ(page)になります。JSPテンプレートとの互換性のために追加された属性です。
role 指定したロールにユーザーが属する場合はタグが考慮され、属さない場合は無視(スキップ)されます。
<add>タグが定義に使用されている場合、ロールは考慮されません。(RT EXPR)
type 文字列(string)、ページ(page)、テンプレート(template)またはインスタンス(instance)から、コンテンツ・タイプを指定します。
  • String: コンテンツは直接出力されます。
  • pageまたはtemplate: コンテンツは指定したURLからインクルードされます。nameがURLとして使用されます。
  • definition: valueは、ファクトリ(XMLファイル)で定義された定義を示します。定義は、挿入するタイルの<insert attribute="attributeName">タグで検索されます。attributeNameが、このタグに使用するnameになります。
type属性を指定しない場合、タイプがBeanから取得されないかぎり、コンテンツはタイプ指定なしとなります。
value 要素の値。文字列またはオブジェクトを指定します。

Struts Tilesタグ・ライブラリ<tiles:definition>タグ

タイル(コンポーネント、テンプレート)の定義Beanを作成します。

タイル(コンポーネント、テンプレート)の定義をBeanとして作成します。新しく作成されるBeanは、リクエストしたスコープに指定したidで保存されます。definitionタグの構文は、insertタグと同じです。新しい定義によって、ファクトリ(XMLファイル)の定義は拡張され、以前の定義パラメータはオーバーロードされます。

属性名 説明
extends 新しい定義を初期化するために使用される親定義の名前。親定義は定義ファクトリ内で検索されます。(RT EXPR)
id 新しく作成する定義Beanを保存するための名前を指定します。(REQUIRED)
page 挿入するテンプレート(コンポーネント)のURL。templateと同じです。(RT EXPR)
role この定義を挿入する前にチェックするロール。現在のユーザーにロールが定義されていない場合、定義は挿入されません。チェックは、定義の処理中ではなく挿入時に行われます。(RT EXPR)
scope 新しく定義するBeanの作成先となる変数のスコープを指定します。指定しない場合、Beanはページ・スコープに作成されます。
template タイル/コンポーネント/テンプレート(JSPページ)のURIを表す文字列。(RT EXPR)

Struts Tilesタグ・ライブラリ<tiles:get>タグ

putタグにより配置されたコンテンツをリクエスト・スコープから取得します。

タイル・コンテキストからコンテンツを取得し、インクルードします。
このタグを使用する場合は、type属性を考慮に入れてください。

属性名 説明
flush trueまたはfalse。trueに設定すると、挿入の前に現在のページの出力ストリームがフラッシュされます。
ignore この属性をtrueに設定すると、nameにより指定した属性が存在しない場合、何も書き込まれずに処理が終了します。デフォルト値はfalseで、ランタイム例外がスローされます。(RT EXPR)
name タイル(コンポーネント)・スコープから取得するコンテンツの名前。(REQUIRED)(RT EXPR)
role 指定したロールにユーザーが属する場合はタグが有効になり、属さない場合はタグが無視(スキップ)されます。(RT EXPR)

Struts Tilesタグ・ライブラリ<tiles:getAsString>タグ

指定したタイル(コンポーネント、テンプレート)の属性値を現在のJspWriterにレンダリングします。

指定したタイル(コンポーネント、テンプレート)の属性プロパティの値を取得し、現在のJspWriterに文字列としてレンダリングします。検出された値には、通常のtoString()変換が適用されます。
指定した値が見つからない場合は、JSPExceptionがスローされます。

属性名 説明
ignore この属性をtrueに設定すると、nameにより指定した属性が存在しない場合、何も書き込まれずに処理が終了します。デフォルト値はfalseで、ランタイム例外がスローされます。(RT EXPR)
name 属性名。(REQUIRED)(RT EXPR)
role 指定したロールにユーザーが属する場合はタグが有効になり、属さない場合はタグが無視(スキップ)されます。(RT EXPR)

Struts Tilesタグ・ライブラリ<tiles:importAttribute>タグ

指定したコンテキストにタイルの属性をインポートします。

リクエストしたスコープにタイルから属性をインポートします。属性名とスコープはオプションです。指定しない場合、すべてのタイル属性がページ・スコープにインポートされます。インポートが終了すると、JSPコンテキストから任意のBeanとして属性を使用できます。

属性名 説明
ignore この属性をtrueに設定すると、nameにより指定した属性が存在しない場合、エラーが返されずに処理が終了します。デフォルト値はfalseで、ランタイム例外がスローされます。(RT EXPR)
name タイルの属性名。指定しない場合、すべての属性がインポートされます。(RT EXPR)
scope 属性のインポート先となるスコープ。デフォルトはpageです。

Struts Tilesタグ・ライブラリ<tiles:initComponentDefinitions>タグ

タイル(コンポーネント)の定義ファクトリを初期化します。

タイル(コンポーネント)の定義ファクトリを使用するには、ファクトリを初期化する必要があります。通常、これは初期化サーブレットで行われます。具体的には、ComponentActionServletで初期化されます(使用している場合)。サーブレットでファクトリを初期化しない場合は、このタグで初期化できます。この場合、ディスクリプタ・ファイル名を指定し、必要に応じてファクトリ・クラス名を指定します。初期化は、このタグの最初のコールの際に1回のみ行われます。後続のコールは無視されます(タグではファクトリの存在がチェックされます)。

属性名 説明
classname 作成および初期化するファクトリのクラス名(オプション)。
file 定義ファイル名。(REQUIRED)

Struts Tilesタグ・ライブラリ<tiles:insert>タグ

パラメータ(属性と呼ばれる)を渡す可能性のあるタイル(コンポーネント、テンプレート)を挿入します。タイルは、場合によりパラメータや属性を含むプロシージャと考えることができます。<template:insert>を使用すると、これらの属性を定義して、挿入されるJSPページ(テンプレート)に渡すことができます。属性は、ネストされた<template:put>タグまたは<template:putList>タグを使用して定義します。

次のタグ属性のいずれか1つを指定する必要があります。

実際、ページ、コンポーネントおよびテンプレートはタイルと同じものであり、コンポーネントまたはテンプレートはJSPページです。

例:

<template:insert page="/basic/myLayout.jsp" flush="true">
  <template:put name="title" value="My first page" />
  <template:put name="header" value="/common/header.jsp" />
  <template:put name="footer" value="/common/footer.jsp" />
  <template:put name="menu" value="/basic/menu.jsp" />
  <template:put name="body" value="/basic/helloBody.jsp" />
</template:insert>    
属性名 説明
attribute 現在のタイル(コンポーネント)のコンテキストでの属性名。この属性の値は、nameに渡されます(name属性を参照)。
beanName 値として使用されるBeanの名前。Beanは、指定したコンテキストから取得されます(存在する場合)。存在しない場合、pageContext.findAttributeメソッドが使用されます。beanPropertyも指定する場合、値は対応するBeanプロパティから取得されます。
検出されたBean(またはプロパティ値)が、Attributeクラス(Direct、Instanceなど)のインスタンスの1つである場合、そのクラス・タイプに従って挿入されます。それ以外の場合は、BeanでtoStringメソッドがコールされ、返された文字列が名前として使用されます(name属性を参照)。(RT EXPR)
beanProperty Beanプロパティの名前。指定する場合、値はこのプロパティから取得されます。ネストされたプロパティと索引付きプロパティがサポートされます。(RT EXPR)
beanScope Beanの検索先となるスコープ。指定しない場合、pageContext.findAttributeメソッドが使用されます。スコープには、任意のJSPスコープ、componentまたはtemplateを指定できます。componentまたはtemplateの場合、Beanはタイル(コンポーネント、テンプレート)のコンテキスト内で検索されます。
component 挿入するコンポーネントのパス(webappsへの相対または絶対パス)。
page、componentおよびtemplateは同義です。すべて同じように動作します。(RT EXPR)
controllerClass ページの挿入の直前にコールされるコントローラのクラス・タイプ。
コントローラは、挿入するタイルによりレンダリングされるデータを準備する際に使用されます。
controlerUrlも参照してください。
クラスは、次のいずれかを実装または拡張したものとなります。
  • org.apache.struts.tiles.Controller
  • org.apache.struts.tiles.ControllerSupport
  • org.apache.struts.action.Action(ラッパーorg.apache.struts.action.ActionControllerが使用されます。)
controllerUrlも参照してください。controllerUrlまたはcontrollerClassのどちらか1つのみを使用します。
controllerUrl ページの挿入の直前にコールされるコントローラのURL。
URLは、通常Strutsアクションを示します。コントローラ(アクション)は、挿入するタイルによりレンダリングされるデータを準備する際に使用されます。
controllerClassも参照してください。controllerUrlまたはcontrollerClassのどちらか1つのみを使用します。
definition 挿入する定義の名前。定義は、一元化されたファイルに記述します。現在のところ、この属性で挿入できるのは、ファクトリからの定義のみです。<template:definition>タグで指定した定義を挿入する場合は、beanName=""としてください。(RT EXPR)
flush trueまたはfalse。trueに設定すると、挿入の前に現在のページの出力ストリームがフラッシュされます。
ignore この属性をtrueに設定すると、nameにより指定した属性が存在しない場合、何も書き込まれずに処理が終了します。デフォルト値はfalseで、ランタイム例外がスローされます。(RT EXPR)
name 挿入するエンティティの名前。この場合、定義、属性、タイル(コンポーネント、テンプレート、ページ)の順で検索されます。(RT EXPR)
page 挿入するページのパス(webappsへの相対または絶対パス)。
page、componentおよびtemplateは同義です。すべて同じように動作します。(RT EXPR)
role 指定したロールにユーザーが属する場合はタグが有効になり、属さない場合はタグが無視(スキップ)されます。(RT EXPR)
template タイルまたはテンプレート(JSPページ)のURIを表す文字列。
page、componentおよびtemplateは同義です。すべて同じように動作します。(RT EXPR)

Struts Tilesタグ・ライブラリ<tiles:put>タグ

タイル(コンポーネント、テンプレート)のコンテキストに属性を配置します。

タイル(コンポーネント、テンプレート)に渡す属性を定義します。このタグは、insertタグまたはdefinitionタグの内部でのみ使用できます。値(またはコンテンツ)は、value(またはcontent)属性を使用して指定するか、タグ・ボディを使用して指定します。また、次のように値のタイプを指定することもできます。

typeを指定する場合、挿入されるタイル内のgetまたはinsertを考慮に入れてください。

type属性を指定しない場合、タイプがBeanから取得されないかぎり、コンテンツはタイプ指定なしとなります。

direct="true"と指定すると、type="string"と指定した場合と同じになります。

属性名 説明
beanName 値として使用されるBeanの名前。Beanは、指定したコンテキストから取得されます(存在する場合)。存在しない場合、pageContext.findAttributeメソッドが使用されます。beanPropertyを指定する場合、値は対応するBeanプロパティから取得されます。(RT EXPR)
beanProperty Beanプロパティの名前。指定する場合、値はこのプロパティから取得されます。ネストされたプロパティと索引付きプロパティがサポートされます。(RT EXPR)
beanScope Beanの検索先となるスコープ。指定しない場合、pageContext.findAttributeメソッドが使用されます。スコープには、任意のJSPスコープ、tile、componentまたはtemplateを指定できます。JSPスコープ以外の場合、Beanはタイル(コンポーネント、テンプレート)のコンテキスト内で検索されます。
content タイル・スコープに配置するコンテンツ。valueのシノニムです。JSPテンプレートとの互換性のために追加された属性です。(RT EXPR)
direct コンテンツの処理方法を指定します。trueに設定するとコンテンツは直接出力されます。false(デフォルト)に設定するとコンテンツはインクルードされます。この属性は、コンテンツ・タイプを指定する別の方法になります。directがtrueの場合、コンテンツは文字列(string)になり、falseの場合、コンテンツはページ(page)になります。JSPテンプレートとの互換性のために追加された属性です。
name 属性名。
role 指定したロールにユーザーが属する場合はタグが有効になり、属さない場合はタグが無視(スキップ)されます。(RT EXPR)
type 文字列(string)、ページ(page)、テンプレート(template)または定義(definition)から、コンテンツ・タイプを指定します。
  • String: コンテンツは直接出力されます。
  • pageまたはtemplate: コンテンツは指定したURLからインクルードされます。nameがURLとして使用されます。
  • definition: valueは、ファクトリ(XMLファイル)で定義された定義の名前です。定義は、挿入するタイルの<template:insert attribute="attributeName">タグで検索されます。attributeNameが、このタグに使用するnameになります。
type属性を指定しない場合、タイプがBeanから取得されないかぎり、コンテンツはタイプ指定なしとなります。
value 属性値。文字列またはオブジェクトを指定します。値は、直接割り当てる(value="aValue")か、Beanから取得します。value、contentまたはbeanNameのいずれかが存在する必要があります。(RT EXPR)

Struts Tilesタグ・ライブラリ<tiles:putList>タグ

タイルに属性として渡されるリストを宣言します。リスト要素は、addタグを使用して追加します。このタグは、insertタグまたはdefinitionタグの内部でのみ使用できます。

属性名 説明
name リストの名前。(REQUIRED)

Struts Tilesタグ・ライブラリ<tiles:useAttribute>タグ

ページ内で属性値を使用します。

タイルの属性値を使用して、Java変数および指定したスコープ内の属性を宣言します。
Java変数および属性の名前は、idを使用して指定します。指定しない場合は、元の名前が使用されます。

属性名 説明
classname 宣言する変数のクラス。
id 宣言する属性および変数の名前。
ignore この属性をtrueに設定すると、nameにより指定した属性が存在しない場合、エラーが返されずに処理が終了します。デフォルト値はfalseで、ランタイム例外がスローされます。(RT EXPR)
name タイルの属性名。(REQUIRED)(RT EXPR)
scope 宣言する属性のスコープ。デフォルトはpageです。

Copyright (c) 2000-2002, Apache Software Foundation

JDeveloperのStrutsカスタム・タグ・ライブラリについて
リファレンス: Strutsタグ・ライブラリ