問題点

セレクターを宣言するコンポーネントがあります。

  • リクエストにはコンポーネントコンテキストがありません。
  • コンポーネントがレンダリングされますが、テンプレートはレンダリングされません。

解決策

JSP A はコンポーネント定義で(一つのみ定義できる)コンポーネントスクリプトとして定義されています。その後、コンポーネント定義に JSP B の glob を追加しました。コンポーネント X がテンプレート(段落システムまたはタグ)に含まれている場合、コンポーネント includer は JSP A だけをコンポーネントスクリプトとして認識します。これは、テンプレート JSP の出力に含まれている JSP です。

コンポーネント定義の glob パターン(jsp B の場合)がテンプレート定義に追加されます。これは、テンプレート定義に直接追加された glob と同じ方法で動作します。この想定されている動作は、イメージや Ajax リクエストと同様に、コンポーネントが別のリソースへの要求を生成する必要がある場合に便利です。このような場合は、コンポーネントを定義するときに glob パターンを把握する必要があります。

想定された動作を実現するには、コンポーネントがリクエストからセレクターを取得し、それに基づいてコンテンツを別の方法でレンダリングする必要があります。コンポーネント定義に glob を追加しないでください。別の JSP に分解する場合は、タグを使用して別の JSP に基づいたセレクターを挿入できます。

com.day.cq.delivery です。DeliveryHttpServletRequest インターフェイスは、公開文字列セレクターを操作するためのパブリック getSelectorString() メソッドおよびパブリック getSelectors() サブクラスメソッドを定義します。JSP リクエストオブジェクトは、CQ にあるこのインターフェイスに直接キャストできます。

以下に、シンプルな例を示します。わかりやすくするため、この例では段落システムを使用しません。

ダウンロード

本作品は Creative Commons Attribution-Noncommercial-Share Alike 3.0 Unported License によってライセンス許可を受けています。  Twitter™ および Facebook の投稿には、Creative Commons の規約内容は適用されません。

法律上の注意   |   プライバシーポリシー