これは、Struts Tilesタグ・ライブラリの開発者ガイドです。この項には、Apache Software Foundation(http://www.apache.org/
)およびそれ以外のサード・パーティによって作成されたドキュメントが含まれます。
このタグ・ライブラリは、tilesタグを提供します。
タイルは、以前はコンポーネントと呼ばれていました。これまでの経緯から、名前、ページ、コンポーネントおよびテンプレートは、タイルを設計する際に区別なく使用されています。また、タグと属性名の多くが、下位互換性の維持のために残されています。
このライブラリで定義されるタグの詳細は、関連ドキュメントを確認してください。
タグ名 | 説明 |
---|---|
add | 囲んでいるリストに要素を追加します。リスト要素に使用することを除けば、putと同じものです。 |
definition | タイル(コンポーネント、テンプレート)の定義Beanを作成します。 |
get | putタグにより配置されたコンテンツをリクエスト・スコープから取得します。 |
getAsString | 指定したタイル(コンポーネント、テンプレート)の属性値を現在のJspWriterにレンダリングします。 |
importAttribute | 指定したコンテキストにタイルの属性をインポートします。 |
initComponentDefinitions | タイル(コンポーネント)の定義ファクトリを初期化します。 |
insert | タイル(コンポーネント、テンプレート)を挿入します。 |
put | タイル(コンポーネント、テンプレート)のコンテキストに属性を配置します。 |
putList | タイルに属性として渡されるリストを宣言します。 |
useAttribute | ページ内で属性値を使用します。 |
囲んでいるリストに要素を追加します。リスト要素に使用することを除けば、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)から、コンテンツ・タイプを指定します。
|
value | 要素の値。文字列またはオブジェクトを指定します。 |
タイル(コンポーネント、テンプレート)の定義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) |
putタグにより配置されたコンテンツをリクエスト・スコープから取得します。
タイル・コンテキストからコンテンツを取得し、インクルードします。
このタグを使用する場合は、type属性を考慮に入れてください。
属性名 | 説明 |
---|---|
flush | trueまたはfalse。trueに設定すると、挿入の前に現在のページの出力ストリームがフラッシュされます。 |
ignore | この属性をtrueに設定すると、nameにより指定した属性が存在しない場合、何も書き込まれずに処理が終了します。デフォルト値はfalseで、ランタイム例外がスローされます。(RT EXPR) |
name | タイル(コンポーネント)・スコープから取得するコンテンツの名前。(REQUIRED)(RT EXPR) |
role | 指定したロールにユーザーが属する場合はタグが有効になり、属さない場合はタグが無視(スキップ)されます。(RT EXPR) |
指定したタイル(コンポーネント、テンプレート)の属性値を現在のJspWriterにレンダリングします。
指定したタイル(コンポーネント、テンプレート)の属性プロパティの値を取得し、現在のJspWriterに文字列としてレンダリングします。検出された値には、通常のtoString()変換が適用されます。
指定した値が見つからない場合は、JSPExceptionがスローされます。
属性名 | 説明 |
---|---|
ignore | この属性をtrueに設定すると、nameにより指定した属性が存在しない場合、何も書き込まれずに処理が終了します。デフォルト値はfalseで、ランタイム例外がスローされます。(RT EXPR) |
name | 属性名。(REQUIRED)(RT EXPR) |
role | 指定したロールにユーザーが属する場合はタグが有効になり、属さない場合はタグが無視(スキップ)されます。(RT EXPR) |
指定したコンテキストにタイルの属性をインポートします。
リクエストしたスコープにタイルから属性をインポートします。属性名とスコープはオプションです。指定しない場合、すべてのタイル属性がページ・スコープにインポートされます。インポートが終了すると、JSPコンテキストから任意のBeanとして属性を使用できます。
属性名 | 説明 |
---|---|
ignore | この属性をtrueに設定すると、nameにより指定した属性が存在しない場合、エラーが返されずに処理が終了します。デフォルト値はfalseで、ランタイム例外がスローされます。(RT EXPR) |
name | タイルの属性名。指定しない場合、すべての属性がインポートされます。(RT EXPR) |
scope | 属性のインポート先となるスコープ。デフォルトはpageです。 |
タイル(コンポーネント)の定義ファクトリを初期化します。
タイル(コンポーネント)の定義ファクトリを使用するには、ファクトリを初期化する必要があります。通常、これは初期化サーブレットで行われます。具体的には、ComponentActionServletで初期化されます(使用している場合)。サーブレットでファクトリを初期化しない場合は、このタグで初期化できます。この場合、ディスクリプタ・ファイル名を指定し、必要に応じてファクトリ・クラス名を指定します。初期化は、このタグの最初のコールの際に1回のみ行われます。後続のコールは無視されます(タグではファクトリの存在がチェックされます)。
属性名 | 説明 |
---|---|
classname | 作成および初期化するファクトリのクラス名(オプション)。 |
file | 定義ファイル名。(REQUIRED) |
パラメータ(属性と呼ばれる)を渡す可能性のあるタイル(コンポーネント、テンプレート)を挿入します。タイルは、場合によりパラメータや属性を含むプロシージャと考えることができます。<template:insert>
を使用すると、これらの属性を定義して、挿入されるJSPページ(テンプレート)に渡すことができます。属性は、ネストされた<template:put>
タグまたは<template:putList>
タグを使用して定義します。
次のタグ属性のいずれか1つを指定する必要があります。
template
: タイル(コンポーネント、テンプレート)のページを挿入します。
component
: タイル(コンポーネント、テンプレート)のページを挿入します(templateと同様)。
page
: JSPページを挿入します(templateと同様)。
definition
: 定義ファクトリから定義を挿入します。
attribute
: 値が使用される、囲んでいるタイルの属性名です。name
: insertで挿入するエンティティのタイプです。この場合、定義、タイル(コンポーネント、テンプレート)、ページの順で検索が行われます。
実際、ページ、コンポーネントおよびテンプレートはタイルと同じものであり、コンポーネントまたはテンプレートは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も参照してください。 クラスは、次のいずれかを実装または拡張したものとなります。
|
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) |
タイル(コンポーネント、テンプレート)のコンテキストに属性を配置します。
タイル(コンポーネント、テンプレート)に渡す属性を定義します。このタグは、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)から、コンテンツ・タイプを指定します。
|
value | 属性値。文字列またはオブジェクトを指定します。値は、直接割り当てる(value="aValue")か、Beanから取得します。value、contentまたはbeanNameのいずれかが存在する必要があります。(RT EXPR) |
タイルに属性として渡されるリストを宣言します。リスト要素は、addタグを使用して追加します。このタグは、insertタグまたはdefinitionタグの内部でのみ使用できます。
属性名 | 説明 |
---|---|
name | リストの名前。(REQUIRED) |
ページ内で属性値を使用します。
タイルの属性値を使用して、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タグ・ライブラリ
Copyright © 1997, 2007, Oracle. All rights reserved.