ホームページ >Java >&#&チュートリアル >Struts での Tiles フレームワークの使用
これは、書籍 Jakarta Struts Programming の Tiles フレームワークの使用に関するシリーズの 3 番目のパートで、主にタグ ライブラリ (挿入、定義、put、putList、add、get、getAsString、useAttribute、 importAttribute、および initComponentDefinitions) .
Tiles Tag Library
このセクションでは、Tiles フレームワークで使用される jsp カスタム タグを紹介します。表 14-1 に、フレームワークで使用できるタグを示します。これらのタグは、他のテンプレートベースのフレームワークで提供されるタグと非常によく似ていますが、タイル フレームワークにはより豊富な機能が含まれています。
表 14-1: Tiles Framework タグ ライブラリのタグ
タグ名 (タグ名) 説明
追加 環境リストに要素を追加します。
定義 Tilesコンポーネントの定義を作成します。
Get リクエストスコープからコンテンツ(コンテンツ)を取得します このコンテンツはputタグ
で配置されます。
GetAsString tile/component/template属性で指定された値を現在の
JspWriterに渡します。
importAttribute 指定されたコンテキストに Tiles 属性を導入します。
initComponentDefinitions タイル定義ファクトリを初期化します。
挿入 Tilesコンポーネントを挿入します。
Put タイルコンテキストにプロパティを設定します。
PutList プロパティとして渡すリストを宣言します。
useAttribute ページ内で属性値を使用します。
insertタグ
insertタグはページにコンテンツを挿入する役割を果たします。タイル レイアウトでは、挿入タグは属性値で指定されたコンテンツを使用します。非タイル レイアウトでは、insert タグを使用してフレーム (レイアウト) を取得し、put タグを使用してコンテンツをレイアウトに渡します。
表 14-2 に、挿入タグの属性を示します。
表 14-2: 挿入タグの属性
属性名 (属性名) 説明
属性 現在のタイル/コンポーネント コンテキストの属性名、この属性値name 属性によって渡されます。
beanName Beanの名前が値として使用され、指定されたコンテンツからBeanが取得されます。
指定されたコンテキストがあれば、そこから Bean を取得できます。それ以外の場合は、pageContext.findAttribute() メソッドを使用して取得する必要があります。 beanPROperty属性が指定されている場合は、対応するBean属性からもこの値を取得できます。
このBean(またはBeanの属性値)が特定の属性クラス(Direct、Instanceなど)のインスタンスである場合、挿入処理はクラスの型に依存します。さらに、Bean の toString() メソッドが呼び出され、戻り値は String として name 属性に渡されます。
BeanProperty Bean プロパティの名前。指定されている場合、値は Bean のプロパティから取得されます。指定されていない場合は、pageContext.findAttribute() メソッドを使用できます。 Bean のスコープは、任意の JSP、コンポーネント、またはテンプレートにすることができます。後者の 2 つのケース (コンポーネント、テンプレート) では、Bean は Tiles (タイル)/コンポーネント/テンプレート コンテンツに含めることができます
コンポーネント タイルまたはテンプレート (テンプレート) URI を説明する文字列、Page およびコンポーネントのプロパティが必要です。全く同じ動作をします
controllerUrl ページが挿入される前のコントローラーの直接 URI。 この URI は通常、strUCt アクションを示すために使用されます。このコントローラー (アクション) は、挿入されたタイルのデータを準備するために使用されます。コントローラーUrl またはコントローラークラスは 1 つだけです
コントローラークラスは、ページが挿入される前に直接呼び出されるコントロール クラスの一種です。このクラスは、挿入されたタイルのデータを準備するために使用されます。存在できるcontrollerUrlまたはcontrollerClassは1つだけです。このクラスは、次のクラスのいずれかを実装または拡張します: org.apache.struts.tiles.Controller、org.apache.struts.tiles.ControllerSupport、または org.apache.struts.action.Action.
Definition 定義の名前を挿入します。 。定義は一元管理されたファイルで定義されます。現在、この属性を使用して挿入できるのはファクトリ定義のみです。 beanName="" を使用して定義された定義を挿入します。
flush true の場合、現在のページはタイル挿入前にストリームを出力します。
ignore この属性が true に設定されており、name で指定された属性が存在しない場合は、何も書かずに結果を返すだけです。初期値は false に設定されており、実行時例外がスローされる可能性があります。 Name は、挿入されるエンティティの名前です。検索は定義、属性、ページの順で行われます。
page タイルまたはテンプレートを表す URI 文字列。テンプレート、ページ、コンポーネントの属性は厳密に同じ動作をする必要があります
role ユーザーが指定されたロールに属している場合、このタグは有効になります。それ以外の場合、このタグは無視され、コンテンツは書き込まれません。
template タイルまたはテンプレートを表すURI文字列。テンプレート、ページ、およびコンポーネントの属性は、厳密に同じ動作をする必要があります
定義タグ
定義タグは、Bean 定義メソッドを使用してタイル (テンプレート) を作成します。この新しく作成された Bean は、要求されたスコープ内の ID によって識別されます。定義タグの構文の一部は、insert の構文と同じです。新しい定義は、定義ファクトリー (xml ファイル) に既に記述されている定義を拡張し、以前に定義されたパラメーターをオーバーライドできます。
表 14-3 は、定義タグでサポートされている属性のリストです
属性名 説明
extends は、定義ファクトリで定義されている親定義を拡張するために使用できます。
id は Bean の名前を定義します。この属性は必須です。
テンプレート/コンポーネントを挿入するにはページ URL。テンプレと同じ。
ロール 定義を挿入する前に、ロールを確認してください。現在のユーザーがこのロールを定義していない場合、この定義は挿入されません。定義時ではなく、挿入時にチェックしてください。
スコープはBeanを新規定義するときに作成されます。指定しない場合、デフォルト値はページスコープです。
テンプレートタイル/コンポーネント/テンプレート(JSPページ)のURLです。
次のスニペットは、JSPで定義タグを使用する方法を示しています。
page="/layouts/storefrontDefaultLayout.jsp"
scope="request">
完全な例は、この章の後半の「JSP ページでの定義の宣言」で示されます
put タグ
put タグは、属性をオブジェクトに渡すために使用されます。タイルコンポーネント。 このタグは、挿入タグまたは定義タグ内でのみ使用できます。 put タグの値は value 属性またはタグ本体で指定します。値の型も指定されることがよくあります。
文字列: 名前のとおり
ページまたはテンプレート: 指定された URL が含まれる名前が通常 URL として使用されます
定義: 指定された定義から取得された名前が使用されます。定義された名前として。 type が使用される場合、get または insert タグによってタイルに挿入されます。 type 属性が指定されていない場合、コンテンツは型付き Bean からのものでない限り型付けされません。
ヒント: direct="true" を設定して設定します。 type="string"も同様です
putタグの属性を表14-4に示します。
プロパティ名 説明
beanName Beanの名前は、値と同様に、非日常コンテンツから取得されます。存在する場合は、pageContext.findAttribute() メソッドを使用して取得することもできます。 beanProperty 属性が指定されている場合、この値は対応する Bean プロパティから取得できます。
beanProperty Beanのプロパティ(プロパティ)の名前、指定されている場合、この値はBeanのプロパティ(プロパティ)から取得されます。
beanScope Beanのスコープ、指定されていない場合は、pageContext.findAttribute()メソッドを使用できます。 。 Bean のスコープは、任意の JSP、コンポーネント、またはテンプレートにすることができます。後の 2 つのケース (コンポーネント、テンプレート) では、Bean は Tiles (タイル)/コンポーネント/テンプレート コンテンツに存在できます
コンテンツ コンテンツはタイル スコープ内にあります。 この属性は value 属性と同等であり、JSP テンプレート タグとの互換性のために追加されます。 .
直接コンテンツ制御メソッド: true はコンテンツが直接表示されることを意味し、false はコンテンツが含まれることを意味します。 false はデフォルト値です。これは、コンテンツ タイプを指定する方法でもあります。 direct="true" の場合、コンテンツは "string" になります。 direct="false" の場合、コンテンツは "page" になります。この属性は、JSP テンプレート タグとの互換性のために追加されます。 .
名前
タイプ コンテンツのタイプ。有効な値は、「文字列」、「ページ」、「テンプレート」、または「定義」です。プロパティの値は、文字列またはオブジェクトに直接割り当てられます。 (value="avalue") または Bean から取得されます。値、コンテンツ、または BeanName が存在する必要があります。
putListタグ
putList タグはリストを作成し、それをタイル内の値で渡します。リスト要素は add タグを使用して追加されます。このタグは、挿入タグまたは定義タグでのみ使用できます。
表 14-5 に putList タグの属性を示します。
属性名 説明
名前リストの名前。この属性は必須です。
addタグ
addタグは周囲のリストに要素を追加します。このタグは putList タグ内でのみ使用できます。この値は直接割り当てることができます。 (value="avalue") または Bean から取得されます。 値または beanName を指定する必要があります。
表 14-6 に add タグの属性を示します。
属性名 説明
beanName Beanの名前は、値と同様に非日常コンテンツから取得されます。その場合は、pageContext.find を使用することもできます
上記は、Struts での Tiles フレームワークの使用に関する内容です。その他の関連記事については、PHP 中国語 Web サイト (www.php.cn) に注目してください。