Oracle® Fusion Middleware Oracle WebCenter Portal開発者ガイド 11g リリース1 (11.1.1.7.0) B72084-02 |
|
前 |
次 |
WebCenter Portal: Frameworkアプリケーションにコンテンツを統合するには、いくつかの方法があります。詳細は、第25章「コンテンツの統合と公開の概要」を参照してください。
JCR APIは、基礎となるリポジトリまたはコンテンツのタイプ(たとえばドキュメント、リレーショナル・コンテンツなど)に関係なく、コンテンツへの独立したアクセスを可能にします。JSR 170で定義されているJCR 1.0 APIは、コンテンツの読取り、書込み、参照および検索のための一連の基本機能を提供しています。JCRデータ・コントロールでは、他のJCR 1.0リポジトリとの接続および読取りも可能です。Oracle WebCenter Content: Content Server、Oracle Portal、SharePoint用Oracle WebCenterアダプタおよびファイル・システムで使用可能なコンテンツをJSFページに追加するには、まずリポジトリへの接続を作成した後、その接続を使用してリポジトリに基づいてデータ・コントロールを作成します。
この章には次の項が含まれます:
コンテンツ・データ・コントロールとは、すべてのデータ・オブジェクト、コレクション、メソッドおよび操作のコンテナであり、Frameworkアプリケーション内にユーザー・インタフェース(UI)コンポーネントを作成するために使用されます。データ・コントロールでは、簡単に使用できるメソッドが提供され、これをJSFページにドラッグ・アンド・ドロップして、URL、ファイルおよびフォルダなどのADFコンポーネントとしてコンテンツを公開できます。コンテンツを公開するためのメソッド、パラメータおよびデフォルト属性は、すべてのJCRデータ・コントロール間で類似していますが、コンテンツ統合モジュールによって、要件に応じた属性のカスタマイズを柔軟に行えます。
どのタイプのコンテンツ・データ・コントロールにも、コンテンツをリンク、表、ファイルおよびフォルダとして公開しコンテンツに検索機能と拡張検索機能を追加するためのメソッドおよびパラメータが含まれています。パラメータには、2つのタイプの属性(デフォルトおよびカスタム)が含まれます。デフォルト属性は、ファイル・システム、Oracle Portal、Oracle WebCenter Content: Content ServerおよびSharePoint用Oracle WebCenterアダプタに基づくデータ・コントロールで共通です。カスタム属性は、リポジトリに固有であり、コンテンツ・データ・コントロールの作成中に追加できます。
次の各項で、ファイル・システム、Oracle Portal、Oracle WebCenter Content: Content ServerおよびSharePoint用Oracle WebCenterアダプタに基づくデータ・コントロールで共通のメソッド、パラメータおよびデフォルト属性について説明します。
getItems
メソッドは、リポジトリ内の特定位置を開始点として格納されているファイルおよびフォルダを返します。このメソッドを使用すると、フォーム、表および階層ツリー内にコンテンツを公開できます。また、このメソッドを使用すると、ナビゲーション・リストおよびボタンも作成できます。
表27-1に、getItems
メソッドのパラメータを示します。
表27-1 getItemsメソッドのパラメータ
パラメータ | 説明 |
---|---|
|
|
|
返される要素(ファイルのみ、フォルダのみ、またはオブジェクト)を指定します。 |
getItems
メソッドは、表27-2に示された属性を返します。
表27-2 getItemsメソッドの戻り属性
パラメータ | 説明 |
---|---|
|
ドキュメント・サービスでアイテムに使用するアイコンへのURIを指定します。 |
|
ドキュメント・サービスでアイテムに使用するアイコンへのURIを指定します。 |
|
IDが必要なドキュメント・サービス・タスク・フローへのパラメータです。 |
|
アイテムの最終変更日に関する説明です。 |
|
返されるファイルまたはフォルダの名前を指定します。 |
|
コンテンツ・リポジトリ内での、返されるファイルまたはフォルダの場所を指定します。 |
|
ファイルまたはフォルダのダイレクト・アクセスURL。 |
|
返されるオブジェクトがファイルかフォルダまたはそれ以外のタイプであるかを指定します。 |
search
メソッドを使用すると、名前パターンまたはキーワードでの標準検索を作成できます。
表27-3に、search
メソッドのパラメータを示します。
表27-3 searchメソッドのパラメータ
パラメータ | 説明 |
---|---|
|
検索の開始パス。 |
|
指定されたフォルダのみを検索する( デフォルト値は |
|
全文検索の検索キーワード。 |
|
名前でのパターン検索。ワイルドカード |
search
メソッドは、表27-4に示す属性を返します。
表27-4 searchメソッドの戻り属性
パラメータ | 説明 |
---|---|
|
ドキュメント・サービスでアイテムに使用するアイコンへのURIを指定します。 |
|
ドキュメント・サービスでアイテムに使用するアイコンへのURIを指定します。 |
|
IDが必要なドキュメント・サービス・タスク・フローへのパラメータです。 |
|
アイテムの最終変更日に関する説明です。 |
|
返されるファイルまたはフォルダの名前を指定します。 |
|
コンテンツ・リポジトリ内での、返されるファイルまたはフォルダの場所を指定します。 |
|
ファイルまたはフォルダのダイレクト・アクセスURL。 |
|
返されるオブジェクトがファイルかフォルダまたはそれ以外のタイプであるかを指定します。 |
advancedSearch
メソッドを使用すると、使用可能な属性から検索基準セットを作成することにより、拡張検索を実行できます。
表27-5に、advancedSearch
メソッドのパラメータを示します。
表27-5 advancedSearchメソッドのパラメータ
パラメータ | 説明 |
---|---|
|
検索の開始パス。 |
|
指定されたフォルダのみを検索する( デフォルト値は |
|
全文検索の検索キーワード。 |
|
名前でのパターン検索。ワイルドカード |
|
すべての述語が一致する必要がある( |
|
属性、コンパレータおよび値から構成される |
|
返される要素(ファイルのみ、フォルダのみ、またはオブジェクト)を指定します。 |
advancedSearch
メソッドは、表27-6に示す属性を返します。
表27-6 advancedSearchメソッドの戻り属性
パラメータ | 説明 |
---|---|
|
ドキュメント・サービスでアイテムに使用するアイコンへのURIを指定します。 |
|
ドキュメント・サービスでアイテムに使用するアイコンへのURIを指定します。 |
|
IDが必要なドキュメント・サービス・タスク・フローへのパラメータです。 |
|
アイテムの最終変更日に関する説明です。 |
|
返されるファイルまたはフォルダの名前を指定します。 |
|
コンテンツ・リポジトリ内での、返されるファイルまたはフォルダの場所を指定します。 |
|
ファイルまたはフォルダのダイレクト・アクセスURL。 |
|
返されるオブジェクトがファイルかフォルダまたはそれ以外のタイプであるかを指定します。 |
getURI
メソッドは、ファイルまたはフォルダのダイレクト・アクセスURLであるURI属性を返します。そのpath
パラメータによりオブジェクトへのパスを指定します。このメソッドを使用すると、コンテンツへのリンクを作成したり、ページでコンテンツをインライン表示できます。getURI
メソッドは、URI
属性を返します。
getAttributes
メソッドは、特定のファイルまたはフォルダの属性および値のリストを返します。そのpath
パラメータによりオブジェクトへのパスを指定します。
表27-7に、getAttributes
メソッドにより返される属性を示します。
この項では、コンテンツのリポジトリ接続に基づくコンテンツ・データ・コントロールを作成する方法について説明します。
コンテンツ・リポジトリ・データ・コントロールの作成手順は、データ・コントロールの作成に使用した接続のタイプに関係なく、同じです。コンテンツ・リポジトリへの接続を作成していない場合、第26.2項「コンテンツ・リポジトリ接続の構成」を参照してください。この項では、Content Serverベースの接続を使用してコンテンツ・データ・コントロールを作成します。
既存のコンテンツ・リポジトリ接続を使用してコンテンツ・データ・コントロールを作成するには:
アプリケーション・ナビゲータで、新しいデータ・コントロールのプロジェクト・エントリを作成するポータル・プロジェクトを選択します。
これは、データ・コントロールの定義とデータ・コントロールの使用を分離するために必要です。ポータル・プロジェクトを選択した場合、ユーザー・インタフェースが作成されるViewControllerプロジェクト内ではなく、「アプリケーション・ソース」サブ・フォルダ内にデータ・コントロール定義ファイルが作成されます。
「アプリケーション・リソース」パネルで、リポジトリ接続を作成した「接続」フォルダを開きます。
新規データ・コントロールに使用するリポジトリ接続をドラッグし、「データ・コントロール」パネルにドロップします。
または、「ファイル」メニューから「新規」を選択します。「新規ギャラリ」で、「ビジネス層」を開き、「コンテンツ・リポジトリ」、「コンテンツ・リポジトリのデータ・コントロール」の順に選択し、「OK」をクリックします。
「接続名」リストで接続の名前が選択された状態で、「コンテンツ・リポジトリのデータ・コントロールの作成」ダイアログが表示されます。
注意: リソース・パレットでリポジトリ接続を作成した場合、リソース・パレットで接続を右クリックし「データ・コントロールの作成」を選択します。リソース・パレットから「データ・コントロール」パネルに、必要な接続をドラッグ・アンド・ドロップできます。 新しい接続を追加するには、「コンテンツ・リポジトリ接続を新規に作成します」アイコンをクリックし、「コンテンツ・リポジトリ接続の作成」ダイアログ・ボックスを表示します。詳細は、第26.2項「コンテンツ・リポジトリ接続の構成」を参照してください。 |
「データ・コントロール名」フィールドに、MyDataControl
などのデータ・コントロールの名前を入力します。
カスタム属性を追加するには、「追加」アイコンをクリックします。次に、「データ・コントロール」パネルに表示する属性の名前を入力し、そのタイプを選択して、JCRパスを入力します。
Content Serverで、次に示すようにdPropertyName
という名前のメタデータ属性がアダプタにマップされます。
jcr:content/idc:metadata/idc:dPropertyName
たとえば、プロパティ名がdWorkflowState
である場合、jcr:content/idc:metadata/idc:dWorkflowState
としてマップされます。
Oracle Portalで、次に示すようにメタデータ属性がアダプタにマップされます。
portal:name of the attribute in Oracle Portal
注意: アイテム属性のJCRパスを取得するには、必要なアイテムに対して |
「OK」をクリックします。
注意: データ・コントロールには、事前定義されたJCRのノード・タイプが含まれます。これらの基本的なノード・タイプは、フォルダ( |
データ・コントロールが正常に構成されると、「データ・コントロール」パネルに表示されます。「データ・コントロール」パネルを開くと、図27-1に示すような新しいデータ・コントロールのメソッド、パラメータおよび操作の階層リストが表示されます。「データ・コントロール」パネルの使用の詳細は、『Oracle Fusion Middleware Oracle Application Development Framework Fusion開発者ガイド』のFusion WebアプリケーションでのOracle ADFモデルの使用に関する項を参照してください。
表27-8に、データ・コントロールのアイコンおよびオブジェクト階層を示します。
表27-8 「データ・コントロール」パネルのアイコンおよびオブジェクト階層
アイコン | 名前 | 説明 | 作成する対象 |
---|---|---|---|
|
データ・コントロール |
データ・コントロールを表します。UIコンポーネントを作成するためにデータ・コントロール自体を使用できませんが、その下のリストに含まれるいずれかの子オブジェクトを使用できます。ビジネス・サービスの定義方法に応じて、複数のデータ・コントロールが存在する場合があります。 |
他のオブジェクトのコンテナとして機能するもので、何かを作成するためには使用されません |
|
メソッド |
パラメータを受け入れ、ビジネス・ロジックを実行し、オプションで単一の値、構造体またはそれらのコレクションを返すことができるデータ・コントロールまたはその公開された構造体の操作を表します |
コマンドのコンポーネント パラメータを受け入れるメソッド(コマンド・コンポーネントおよびパラメータ化されたフォーム) |
|
メソッドの戻りオブジェクト |
カスタム・メソッドによって返されるオブジェクトを表します。返されるオブジェクトは、単一の値またはコレクションです。 メソッドの戻りオブジェクトは、それを返すメソッドの下の子として示されます。メソッドの戻りオブジェクトの下の子として表示されるオブジェクトは、該当コレクションの属性、親コレクションに関連するアクションを実行する他のメソッド、および親コレクション上で実行可能な操作です。 |
単一値(テキスト・フィールドおよび選択リスト) コレクション(フォーム、表、ツリーおよび範囲ナビゲーション・コンポーネント) 単一値のメソッド戻りオブジェクトがドロップされた場合、メソッドはフレームワークによって自動的に起動されません。またユーザーは、実行可能プログラムとして起動アクションを作成するか、メソッドを起動するボタンとして対応メソッドをドロップする必要があります。 |
|
属性 |
オブジェクト内の個別データ要素を表します(行内の属性など)。属性は、それが属するコレクションまたはメソッド戻りオブジェクトの下に子として示されます。 ビュー・オブジェクトに含まれていた属性のみがコレクションの下に表示されます。ビュー・オブジェクトが1つ以上のエンティティ・オブジェクトに結合する場合、そのビュー・オブジェクトのコレクションには基礎となるすべてのエンティティ・オブジェクトからの選択された属性が含まれます。 |
ラベル、テキスト・フィールド、日付および選択リストのコンポーネント |
|
操作 |
親オブジェクト上でアクションを実行する組込みデータ・コントロール操作を表します。データ・コントロール操作は、コレクションまたはメソッドの戻りオブジェクト、およびルート・データ・コントロール・ノードの下にある「操作」フォルダに位置します。特定のコレクションまたはメソッドの戻りオブジェクトの子である操作はそのオブジェクトに対してのみ動作するのに対して、データ・コントロール・ノード下にある操作はデータ・コントロール内のすべてのオブジェクトに対して動作します。 操作に1つ以上のパラメータが必要である場合、操作の下にある「パラメータ」フォルダに示されます。 |
ボタンやリンクなどのUIコンポーネント |
|
パラメータ |
パラメータが示されているメソッドまたは操作によって宣言されたパラメータ値を表します。パラメータは、メソッドまたは操作の下にある「パラメータ」フォルダに示されます。 |
ラベル、テキストおよび選択リストのコンポーネント |
次のファイル(図27-2)は、「ポータル」プロジェクトの下に作成されます。
DataControls.dcx
: Oracle JDeveloperは、データ・コントロールが最初に作成されたときにこのファイルを作成します。このファイルには、現在のプロジェクトの下で作成されたすべてのOracle ADFデータ・コントロールが含まれます。このファイルは、データ・コントロールの初期化に必要です。
datacontrolname
.xml
: このファイルには、データ・コントロールの属性、アクセッサおよび操作が含まれます。
advancedSearch_return.xml
: このファイルには、advancedSearch
メソッドの戻り型定義が含まれます。
getAttributes_return.xml
: このファイルには、getAttributes
メソッドの戻り型定義が含まれます。
getItems_return.xml
: このファイルには、getItems
メソッドの戻り型定義が含まれます。
getURI_return.xml
: このファイルには、getURI
メソッドの戻り型定義が含まれます。
search_return.xml
: このファイルには、search
メソッドの戻り型定義が含まれます。
Return.xml
: このファイルは、コレクションに対する標準操作を定義します。
この項では、第27.2項「JCRアダプタ対応のコンテンツ・データ・コントロールの構成」の説明に従って構成したコンテンツ・データ・コントロールを編集するための一般的な手順を示します。
コンテンツ・データ・コントロールを編集するには:
Oracle JDeveloperで、コンテンツ・データ・コントロールが含まれるアプリケーションに移動します。
「データ・コントロール」ペインで、編集するデータ・コントロールを右クリックし、図27-3に示すように「定義の編集」を選択します。図27-4に示す「コンテンツ・リポジトリのデータ・コントロールの編集」ダイアログが表示されます。
別の接続を選択するには、「接続名」リストを使用します。
接続を追加するには、「コンテンツ・リポジトリ接続を新規に作成します」アイコンをクリックし、「コンテンツ・リポジトリ接続の作成」ダイアログを表示します。構成パラメータの詳細は、作成する接続のタイプに応じて、第26.2項「コンテンツ・リポジトリ接続の構成」で対応する項を参照してください。
既存の接続を編集するには、「選択したコンテンツ・リポジトリ接続を編集します」アイコンをクリックし、「コンテンツ・リポジトリ接続の編集」ダイアログを表示します。構成パラメータの詳細は、変更する接続のタイプに応じて、第26.2項「コンテンツ・リポジトリ接続の構成」で対応する項を参照してください。
カスタム属性を追加するには「カスタム属性」ボックスの「新規属性の追加」アイコンを、削除するには「選択された属性の削除」アイコンを使用します。
「OK」をクリックして変更を適用します。
コンテンツ・リポジトリ接続のセキュリティを有効にできます。詳細は、第68章「WebCenter Portal: Frameworkアプリケーションの保護」を参照してください。
この項では、データ・コントロールのgetURI
メソッド、getItems
メソッド、search
メソッドおよびadvancedSearch
メソッドを使用します。データ・コントロール・メソッドを使用する基本手順は、そのメソッドをページにドラッグ・アンド・ドロップすることです。メソッドをドロップすると、そのADF Facesタグがページのソースに追加され、タグが「構造」ウィンドウに表示されます。たとえば、getURI
のURI属性を実行リンクとしてドロップすると、af:goLink
がページに追加されます。af:goLink
の宛先は、EL式#{bindings.URI.inputValue}
に設定されます。このEL式は、af:goLink
の宛先値をバインディング・コンテナのURI値に関連付けます。
ページ定義ファイルでは、methodIterator
がexecutables
要素に追加され、methodAction
がbindings
要素に追加されます。methodIterator
要素およびmethodAction
要素は、使用されるデータ・コントロールおよびメソッドを定義します。methodAction
のNamedData
属性は、このメソッドのコールで提供する必要がある入力パラメータ値を定義します。pathパラメータおよびtypeパラメータは、すべてのデータ・コントロール・メソッドで共通です。ただし、searchおよびadvancedSearch
のNamedData
には、それぞれのメソッドに固有の追加パラメータが含まれます。たとえば、advancedSearch
メソッドでは、検索の条件、検索が再帰的であるかどうかなどを定義するためにNamedData
を使用することもできます。
ページ定義には、ADFに対するバインディング・コンテナで使用可能なアイテムの属性を定義するAttrNames
要素が含まれます。こうしたアイテムは、データ・コントロールの作成時に定義されたデフォルト属性およびカスタム属性に基づきます。
「データ・コントロール」パネルおよびページ定義ファイルの使用の詳細は、『Oracle Fusion Middleware Oracle Application Development Framework Fusion開発者ガイド』のFusion WebアプリケーションでのOracle ADFモデルの使用に関する項を参照してください。
この項の例では、次のデータ・コントロール・メソッドを使用しています。
getURI
: リポジトリ・フォルダにテキスト・リンクおよびクリック可能イメージ・リンクを追加します。
getItems
: ADF表およびツリーにリポジトリ・コンテンツを公開します。
search
およびadvancedSearch
: 検索条件に一致するリポジトリのアイテムを表示します。
この項には次のサブセクションが含まれます:
この項では、ファイル・システムに格納されたファイルへのハイパーリンクの作成方法およびそれらをテキストおよびイメージ・リンクに変換する方法について説明します。「ADF実行リンク」およびgetURI
メソッドを使用してテキスト・リンクを作成し、「ADF Faces」のイメージを使用してイメージ・リンクを作成します。
この項では、次の手順について説明します。
開始する前に:
第26.2項「コンテンツ・リポジトリ接続の構成」の説明に従って、リポジトリ接続を構成します。
第27.2項「JCRアダプタ対応のコンテンツ・データ・コントロールの構成」の説明に従って、データ・コントロールを構成します。
第5.3項「ポータルへのページの追加」の説明に従って、ページを作成します。
この項では、getURI
メソッドのOracle ADF実行リンク・オプションを使用して、コンテンツをテキスト・リンクとして公開します。また、リポジトリの特定アイテムを表示するためのリンクを作成します。
テキスト・リンクとしてコンテンツを公開するには:
アプリケーション・ナビゲータで、ページ(myPage.jspx
など)をダブルクリックしてビジュアル・エディタ内に開きます。
「データ・コントロール」パネルで、リポジトリ接続の下の「getURI (String)」メソッドを開き、「Return」を開きます。図27-5に示すように、URI
属性が表示されます。
テキスト・リンクを作成するには、「URI」属性を選択し、「構造」ウィンドウのh:form
の下またはページ上にドロップします。図27-6に示すように、「作成」メニューから「リンク」を選択し、次に「ADF実行リンク」を選択します。
最初にノードをページにドロップした場合、「アクション・バインディングの編集」ダイアログが表示されます。
図27-7に示すように、pathパラメータの「値」フィールドに、リンクを作成するファイルのパスを入力します。/PlasmaNews.html
などのように、必ずスラッシュ(/
)を入力してください。このパスを後で変更または削除するには、設計モードでノードの隣にある矢印アイコンをクリックし、ポップアップ・メニューから「バインディングに移動」を選択します。
「OK」をクリックします。
ページを右クリックし、「実行」を選択します。ブラウザに、「アクション・バインディングの編集」ダイアログに入力したファイル・パスのURLが書式設定なしで表示されます。
デフォルトでは、リンクにはテキストgoLink1
が表示されます。「構造」ウィンドウで、「af:goLink - goLink1」を選択し、「プロパティ・インスペクタ」のプロパティを表示します。
図27-8に示すように、「Text」フィールドにPlasma News
などのリンク名を入力します。
ページを右クリックし、「実行」を選択します。図27-9に示すように、ブラウザ・ウィンドウに新しいリンクを備えたページが表示されます。
リンクをクリックして、適切なファイルが表示されることを確認します。
第27.5.1.2項「ドキュメントへリンクするクリック可能イメージの作成」で、このテキスト・リンクを拡張してイメージ・リンクにします。
同じJSFページに別のアイテムへのリンクを追加するには:
アプリケーション・ナビゲータで、ADF実行リンクを作成したページを右クリックし、「ページ定義に移動」を選択します。図27-10に示すように「設計」ビューに「ページ・データ・バインディング定義」が表示されます。
ページ定義の「ソース」ビューに移動します。
次の例に太字で示したように、executables
要素で、別のmethodIterator
を追加し、methodIterator id
およびBinds
の値を変更します。
<executables> <variableIterator id="variables"/> <methodIterator Binds="getURI.result" DataControl="MyDataControl" RangeSize="25" BeanClass="portal.MyDataControl.getURI_return" id="getURIIterator"/> <methodIterator Binds="getURI1.result" DataControl="MyDataControl" RangeSize="25" BeanClass="portal.MyDataControl.getURI_return" id="getURIIterator1"/> </executables>
次の例に太字で示したように、Bindings
要素で、別のmethodAction
を追加し、methodAction id
、ReturnName
およびNDValue
を変更します。
<methodAction id="getURI"
RequiresUpdateModel=true
Action="invokeMethod" MethodName="getURI"
IsViewObjectMethod="false" DataControl="MyDataControl"
InstanceName="MyDataControl"
ReturnName="MyDataControl.methodResults.getURI_MyDataControl_getURI_result">
<NamedData NDName="path" NDValue="/PlasmaNews.html"
NDType="java.lang.String"/>
</methodAction>
<methodAction id="getURI1"
RequiresUpdateModel="true" Action="invokeMethod" MethodName="getURI"
IsViewObjectMethod="false" DataControl="MyDataControl"
InstanceName="MyDataControl"
ReturnName="MyDataControl.methodResults.getURI_MyDataControl_getURI1_result">
<NamedData NDName="path" NDValue="/FusionOrderDemoLogo.jpg"
NDType="java.lang.String"/>
</methodAction>
次の例に太字で示したように、Bindings
要素で、別のattributeValues
タグを追加して新しいIdを指定します。
<attributeValues IterBinding="getURIIterator" id="URI"> <AttrNames> <Item Value="URI"/> </AttrNames> </attributeValues> <attributeValues IterBinding="getURIIterator1" id="URI1"> <AttrNames> <Item Value="URI"/> </AttrNames> </attributeValues>
「データ・コントロール」パネルで、リポジトリ接続の下の「getURI (String)」メソッドを開き、「Return」を開きます。URI
属性が表示されます。
テキスト・リンクを作成するには、「URI」属性を選択し、「構造」ウィンドウのh:form
の下またはページ上にドロップします。図27-11に示すように、「作成」メニューから「リンク」を選択し、次に「ADF実行リンク」を選択します。
「構造」ウィンドウで、新しいgoLink(「af:goLink2」など)をダブルクリックして、「実行リンクのプロパティ」ウィンドウを表示します。
「テキスト」フィールドに、新規リンクの表示名(FOD Logo
など)を入力します。
「リンク先」フィールドで下矢印をクリックして「式ビルダー」ダイアログを表示します。次に、「ADFバインディング」、「バインディング」および「URI1」を開きます。
「inputValue」変数をダブルクリックして#{bindings.URI1.inputValue}
式を作成し、「OK」をクリックします。この式は、executables
およびbindings
に追加した新しい要素に基づいています。
ページを実行します。新しいリンクに、手順4で指定した新しいパス(NDValue
)からのコンテンツが表示されます。図27-12に、第27.5.1.1項「テキスト・リンクとしてのコンテンツの公開」の冒頭で追加した「Plasma News」
リンクとともに、新しいリンク「FOD Logo」
が表示されています。
この手順に従うことで、必要なだけいくつでもリンクを追加できます。
この項では、ADF FacesのImageオプションを使用してクリック可能イメージ(イメージ・オブジェクトをクリックすると、ドキュメントが表示される)としてドキュメントを公開します。
コンテンツをクリック可能イメージとして公開するには:
アプリケーション・ナビゲータで、ADF実行リンクを作成したページをダブルクリックして開きます。
第27.5.1.1項「テキスト・リンクとしてのコンテンツの公開」の冒頭部分で作成したテキスト・リンクを変換するには、「構造」ウィンドウで「af:goLink - goLink1」を右クリックし、「参照」を選択します。「項目の挿入」ダイアログが表示されます。
図27-13に示すように、「作成する項目を選択します」リストから「イメージ」を選択します。
「OK」をクリックします。「イメージの挿入」ダイアログが表示されます。
イメージ・リンクとして表示するイメージ・ファイル(plasma.jpg
など)を参照します。
「終了」をクリックします。
ページを右クリックし、「実行」を選択します。図27-14に、サンプル出力を示します。
前の例では、ADF実行リンクを使用して、ファイル・システムに格納されたファイルに対するハイパーリンクを作成し、ADF FacesのgetURI
メソッドおよびイメージ・コンポーネントを使用してテキストおよびイメージのリンクに変換しました。
実行時にADFフレームワークは、ページで必要になるデータ・コントロール・メソッドを起動するためにページ定義ファイルの情報を使用します。ページのライフサイクルの詳細は、『Oracle Fusion Middleware Oracle Application Development Framework Fusion開発者ガイド』のFusionページのライフサイクルの理解に関する項を参照してください。
実行時にgetURI
データ・コントロール・メソッドが起動され、指定したパスがデータ・コントロールが構成されたコンテンツ・リポジトリの有効なHTTP URIに変換されます。戻されるURLは、ターゲット・リポジトリへの構文的に正しいURLですが、リソースの検出を保証するものではありません。つまり、getURI
メソッドでは、既存のJCRノードに対応するパスは検証されません。ページがレンダリングされ、クリック可能イメージまたはリンクがクリックされると、アプリケーションのゲット・ハンドラによってHTTP URLがJCRパスに変換され、そのJCRパスのコンテンツの取得が試行されます。ゲット・ハンドラはまた、リポジトリから情報が取得できる場合は、レスポンスContent-Type
ヘッダー内のmimeType
情報を提供します。JCRでは、jcr:mimeType
はnt:resource
ノード・タイプのオプションのプロパティのためです。
この項では、getItems
データ・コントロール・メソッドを使用して、表でファイルおよびフォルダ情報を公開します。この項では、次の手順について説明します。
開始する前に:
第26.2項「コンテンツ・リポジトリ接続の構成」の説明に従って、リポジトリ接続を構成します。
第27.2項「JCRアダプタ対応のコンテンツ・データ・コントロールの構成」の説明に従って、データ・コントロールを構成します。
第5.3項「ポータルへのページの追加」の説明に従って、ページを作成します。
ここで、getItems
メソッドを使用して読取り専用のADF表を作成します。
読取り専用表でフォルダ・コンテンツを表示するには:
ページをビジュアル・エディタで開くために、アプリケーション・ナビゲータでダブルクリックします。
図27-15に示すように、「データ・コントロール」パネルで、データ・コントロールの下の「getItems」メソッドおよび「Return」ノードを開きます。
このデータ・コントロールを介して使用可能なすべてのファイルおよびフォルダがリストされる表を作成するには、「Return」ノードをページまたは「構造」ウィンドウの「af:form」
の下にドロップします。図27-16に示すように、「作成」メニューから「表」を選択し、次に「ADF読取り専用表」を選択します。
図27-17に示すように、「表の列の編集」ダイアログで、「getItems.name
値バインディング」の行を選択し、「ラベルの表示」に適切な値(Name
など)を入力します。
path、URI、primaryTypeおよびlastModified属性に対してこの手順を繰り返します。name
、Location
、URL
などの新しい表示ラベルを入力し、「OK」をクリックします。
最初にノードをページにドロップした場合、「アクション・バインディングの編集」ダイアログが表示されます。
図27-18に示すように、「アクション・バインディングの編集」ダイアログで、コンテンツ・ディレクトリのパスをpath
パラメータとして入力します。必ずスラッシュ(/
)を入力してください。このパスを後で変更または削除するには、設計モードでノードの隣にある矢印アイコンをクリックし、ポップアップ・メニューから「バインディングに移動」を選択します。
type
パラメータは空白のままにしておきます。これは、表にファイルとフォルダの両方を表示することを示します。
「OK」をクリックします。図27-19に示すような表が、ページに表示されます。
注意: ページ・キャッシュのオンとオフを切り替えることができます。このためには、ページ定義を開き、「構造」ウィンドウで「実行可能ファイル」を開き、「getItemsIterator」を選択します。次に、プロパティ・インスペクタで、CacheResultsをtrueまたはfalseに適宜設定します。 |
ページを実行します。コンテンツ・ディレクトリで使用可能なすべてのファイルおよびフォルダのリストが表示されます。図27-20は、実行時にファイルとフォルダの両方を示す読取り専用表です。
デフォルトでは、表にはファイルまたはフォルダの属性が読取り専用テキスト(af:outputText
)として表示されます。次の項で、Name
属性(name
)を実行リンク(af:goLink
)として表示する方法を説明します。
この項では、第27.5.3.1項「読取り専用形式でのファイルおよびフォルダの表示」で作成した表のName
属性を、ADF実行リンク・コンポーネントを使用してリンクに変換します。また、「名前」列のみを表示するように表を構成します。
実行リンクとしてName属性を表示するには:
「構造」ウィンドウ(図27-21)で、表の最初の列(af:column - Name
)を開いて、デフォルトの表示形式「af:outputText - #{row.name}」
を表示します。
ページのリンク元ビューで、実行リンクを使用する「名前」列を変更します。リンクには名前が表示されますが、エントリのURIにリンクされています。
太字のaf:outputText
を置き換えます。
<af:column sortProperty="name" sortable="false"
headerText="#{bindings.Return.hints.name.label}" id="c2">
<af:outputText value="#{row.name}" id="ot1"/>
</af:column>
太字に示すようにaf:goLink
に置き換えます。
af:column sortProperty="name" sortable="false" headerText="#{bindings.Return.hints.name.label}" id="c2"> <af:goLink text="#{row.name}" id="goLink2" destination="#{row.bindings.URI.inputValue}"/> </af:column>
「構造」ウィンドウで、「af:column - URL」
を右クリックし、「削除」を選択します。
アプリケーション・ナビゲータでページを右クリックし、「実行」を選択します。図27-22に示すような、ハイパーリンク付きのファイルおよびフォルダ名のリストが表示されます。この図では、name
属性がリンクとして示されています。「URI」列のリンクをクリックすると、対応するファイルまたはフォルダが開き、そのコンテンツが表示されます。
ファイル名をクリックします。選択したファイルが、ブラウザ・ウィンドウに表示されます。
フォルダの名前をクリックすると、図27-23に示すように、フォルダのコンテンツが表示されます。
「名前」列のみを表示するよう表を構成するには:
「構造」ウィンドウの「af:table - t1」ノードで、「名前」列以外のすべての列を削除します。
「af:table - t1」ノードをダブルクリックし、プロパティ・インスペクタを表示します。
図27-24に示すように、「共通」タブの「ID」フィールドに名前(myFiles
など)を入力します。
ページを実行して出力を表示します。他の行は設計時に「構造」ウィンドウから削除されたため、図27-25には表の列のみを表示しています。表の作成時にtype
パラメータを空白のままにしたため、この表はファイルとフォルダの両方を表示しています。
次の項では、ファイルのみが表示されるように「名前」列を構成します。
フォルダではなく、ファイルのみが表示されるように表を構成するには、type
属性を使用します。
ファイルを表示するように表を構成するには:
ページを右クリックし、「ページ定義に移動」を選択します。
注意: ページに表示されるアイテムの数を制御するために使用される |
「概要」タブで、「バインディング」の「getItems」をダブルクリックします。「アクション・バインディングの編集」ダイアログが表示されます。
「type」オプションは、nt:file
とnt:folder
です。ファイルのみが表示されるように指定するには、図27-26に示すように、「値」列にnt:file
を入力し、「OK」をクリックします。
ここで、ページを実行します。列タイプがnt:file
のため、図27-27には1列のみの表にあるファイルのみを表示しています。
JCRデータ・コントロールのgetItems
メソッドは、JCRフォルダの子アイテム(タイプnt:folder
)を取得します。このメソッドは、フォルダへのパスを指定してコールされます。オプションで、戻される子ノードを制限するタイプも指定できます。
path
パラメータは、フォルダのパスであることが必要です。このルールの例外としては、リポジトリのルートはフォルダにする必要はないことです。このため、getItems
メソッドでは、フォルダに対応するパスやリポジトリのルートであるパスの子アイテムを取得できます。それ以外の場合、getItems
メソッドでは子アイテムの取得を試行しないので、結果セットは移入されません。
実行時に、JCRデータ・コントロールはSession.getItem
メソッドをコールします。このメソッドはJCRノードを返します。次にデータ・コントロールは、子ノードを取得するためにnode.getNodes
をコールします。子ノードは、指定のタイプ(nt:file
タイプなど)に従ってフィルタ処理されます。データ・コントロールは、これらの子ノードをADFに渡します。バインディング・コンテナを通じてデータ・コントロール・アイテム属性としてJCRプロパティを利用できるように、データ・コントロールはJCRノード・オブジェクトをADFに適合させます。
この例では、データ・コントロールによって返されたコレクションの各行が行としてaf:table
表に格納されます。ただし、データ・コントロールによって返される使用可能なすべてのADFアイテム属性についてではなく、af:table
で定義された各af:column
についてのみ、列が表示されます。この例の冒頭部分では、ドラッグ・アンド・ドロップ・アクションにより、データ・コントロールによって返された各ADFアイテムで使用可能な各ADF属性について、af:column
が作成されます。
名前のaf:column
のみを含めるようにaf:table
が変更されている場合、実行時にADFアイテムの名前のみを要求します。つまり、データ・コントロールは、JCRノードの名前をフェッチするメソッドを実行します。設計時に名前列がaf:goLink
に変換されている場合、次の構文に示すように、実行リンクのリンク先はアイテムのURI値に設定されます。
<af:goLink text="#{row.name}" destination="#{row.URI}"/>
実行時にデータ・コントロールは、表の各ADFアイテムについて、アイテムのJCR名とそのHTTP URLの両方を返すメソッドを実行します。
この項では、getItems
メソッドを使用して、コンテンツを階層ツリー形式で公開します。この項では、次の手順について説明します。
開始する前に:
第26.2項「コンテンツ・リポジトリ接続の構成」の説明に従って、リポジトリ接続を構成します。
第27.2項「JCRアダプタ対応のコンテンツ・データ・コントロールの構成」の説明に従って、データ・コントロールを構成します。
第5.3項「ポータルへのページの追加」の説明に従って、ページを作成します。
この項では、コンテンツをツリー形式で表示します。
コンテンツをツリー形式で表示するには:
アプリケーション・ナビゲータで、ページをダブルクリックしてデザイン・ビューで開きます。
図27-28に示すように、「データ・コントロール」で、該当するデータ・コントロールの下のgetItemsメソッドを展開します。
コンテンツをADFツリーとして表示するには、「Return」ノードを選択してページにドラッグします。図27-29に示すように、「作成」メニューから「ツリー」を選択し、次に「ADFツリー」を選択します。
最初にノードをページにドロップした場合、「アクション・バインディングの編集」ダイアログが表示されます。
ベース・パスの下の要素をすべて表示するツリーを作成するには、図27-30に示すように、path
パラメータにスラッシュ(/
)を入力します。このパスを後で変更または削除するには、設計モードでノードの隣にある矢印アイコンをクリックし、ポップアップ・メニューから「バインディングに移動」を選択します。
ファイルとフォルダの両方を表示するために、type
は空白にしておきます。
「OK」をクリックします。「ツリー・バインディングの編集」ダイアログが表示されます。
実行時のアイテムの名前、パスおよびタイプを表示するには、「使用可能な属性」で適切な属性を選択し、「表示属性」リストに移動します。
図27-31に示すように、「ツリー・レベル・ルール」ボックスで、「ルールの追加」アイコンをクリックして「アイテム」を選択し、ルールを作成します。これによって、ツリーでその子アイテムを検索できます。
「OK」をクリックします。図27-32に示すように、ツリーがページに表示されます。
ページを実行して、結果を表示します。
ページがブラウザ・ウィンドウに表示されると、データ・コントロールを介して使用可能なファイルおよびフォルダのリストが表示されます。図27-33は、JSFページにドロップされたADFツリーに基づく読取り専用形式のファイルおよびフォルダのツリーを示しています。ブランチを開くと、このサブディレクトリ内のコンテンツが表示されます。
注意: デフォルトでは、レンジ・サイズは |
デフォルトでは、ツリーにはファイルおよびフォルダの名前が読取り専用テキストとして表示されます。次の項では、ファイル名へのハイパーリンクを作成する方法について説明します。また次の項では、ツリーでの移動に必要になるので、フォルダ名は読取り専用テキストのままにします。
フォルダ名を読取り専用にしたまま、ファイル名にハイパーリンクを作成するには、2つのファセット(フォルダ用とファイル用に1つずつ)を持つaf:switcher
コンポーネントが必要です。
フォルダおよびファイルにSwitcherコンポーネントを使用するには:
「構造」ウィンドウで、「f:facet - nodeStamp」
に移動し、af:outputText-#{node}
を削除します。
「nodeStamp」を右クリックし、「f:facet - nodeStampの中に挿入」を選択し、「参照」を選択します。
「項目の挿入」ダイアログで、カテゴリを選択するためのドロップダウン・リストから「ADF Faces」を選択します。
「作成する項目を選択します」リストから「スイッチャ」を選択し、「OK」をクリックします。
図27-34に示すように、「構造」ウィンドウの「f:facet - nodeStamp」の下にスイッチャが追加されます。
プロパティ・インスペクタが表示されていない場合、「af:switcher」をダブルクリックして表示します。
「共通」タブの「FacetName」フィールドで、式#{node.primaryType}
を入力します。
「構造」ウィンドウで、スイッチャのファセットを2つ挿入します。「af:switcher」を右クリックし、「af:switcherの中に挿入」→「ファセット」の順に選択します。「ファセットの挿入」ダイアログが表示されます。
最初のファセットにnt:folder
という名前を付け、「OK」をクリックします。フォルダ名に追加の書式設定は必要ないので、ノード名はプレーン・テキストとして表示できます。2番目のファセットnt:file
に名前を付けます。このファセットは、図27-35のように表示されます。
「f:facet - nt:folder」を右クリックし、「f:facet - nt:folderの中に挿入」を選択して「参照」を選択します。
「項目の挿入」ダイアログで、ドロップダウン・リストから「ADF Faces」を選択します。
「作成する項目を選択します」リストから「出力テキスト」を選択し、「OK」をクリックします。
プロパティ・インスペクタが表示されていない場合は、「af:outputText - outputText1」をダブルクリックして表示します。「共通」タブの「値」フィールドで、式#{node.name}
を入力します。
「f:facet - nt:file」を右クリックし、「f:facet - nt:folderの中に挿入」を選択して「参照」を選択します。
「項目の挿入」ダイアログで、ドロップダウン・リストから「ADF Faces」を選択します。
「作成する項目を選択します」リストから「実行リンク」を選択し、「OK」をクリックします。
プロパティ・インスペクタが表示されていない場合は、構造ウィンドウで、「af:goLink - goLink」をダブルクリックして表示します。
「共通」タブの「テキスト」フィールドで、#{node.name}
式を入力します。
「リンク先」フィールドに、式#{node.URI}
を入力します。
「ターゲット・フレーム」リストから、「空白」を選択します。
ページを実行します。図27-36では、af:tree
の下にあるスイッチャのnt:file
ファセットがリンク(node.URI
)に変換されたので、ファイル名がハイパーリンクとして表示されています。リンクをクリックすると、対応するアイテムが表示されます。
JCRデータ・コントロールのgetItems
メソッドは、JCRフォルダの子アイテム(タイプnt:folder
)を取得するために設計されました。このメソッドは、フォルダへのパスを指定して起動されます。オプションで、戻される子ノードを制限するタイプも指定できます。path
パラメータには、子アイテムを取得するgetItems
メソッドのフォルダへのパスを指定する必要があります。このルールの例外としては、リポジトリのルートはフォルダにする必要はないことです。このため、getItems
メソッドでは、フォルダに対応するパスやリポジトリのルートであるパスの子アイテムを取得できます。それ以外の場合、getItems
メソッドでは子アイテムの取得を試行しないので、結果セットは移入されません。パスが有効な場合、データ・コントロールはこのパス上のJCR Session.getItem()
を起動してJCRノードを返します。その後、node.getNodes()
を起動してすべての子ノードを取得します。子ノードは、nt:file
タイプの子ノードのみを返すなど、提供されるタイプに応じてフィルタ処理されます。これは、データ・コントロールがADFに提供する結果です。バインディング・コンテナを通じてデータ・コントロール・アイテム属性としてJCRプロパティを利用できるように、データ・コントロールはJCRノード・オブジェクトをADFに適合させます。
af:tree
は、ツリーでノードとしてデータ・コントロールによって返されるコレクションで各ノードをレンダリングします。この例の冒頭部分では、各ノードのname
、type
およびURI
を表示します。これらの各値は、データ・コントロールを通じて取得されます。スイッチャをaf:tree
に追加した場合、ノードのレンダリング方法を区別するためにノードのprimaryType
値が使用されます。ノードのプライマリ・タイプがnt:folder
である場合、その名前のみがツリー・ノードに表示されます。ただし、ノードのタイプがnt:file
である場合、ノードはgo:Link
をレンダリングし、リンク先はノードのURIになります。ツリーのフォルダ・ノードの子ノードを取得するために、データ・コントロールのgetItems
メソッドが再度起動されます。
この項では、2つの例をあげて、統合されたコンテンツに対して標準検索機能および拡張検索機能を追加する方法を示します。標準検索では、ユーザーは、名前や特定の場所にあるコンテンツ・フラグメントに基づいてコンテンツを検索できます。拡張検索では、ユーザーはコンテンツの属性値によって検索できます。
この項の内容は、次のとおりです。
開始する前に:
第26.2項「コンテンツ・リポジトリ接続の構成」の説明に従って、リポジトリ接続を構成します。
第27.2項「JCRアダプタ対応のコンテンツ・データ・コントロールの構成」の説明に従って、データ・コントロールを構成します。
第5.3項「ポータルへのページの追加」の説明に従って、ページを作成します。
この項では、標準検索機能をページで有効にします。これによって、ワイルドカード(%
)検索が行えるようになります。
検索機能を有効にするには:
アプリケーション・ナビゲータで、ページをダブルクリックして開きます。
「データ・コントロール」パネルで、「search」ノードを開きます。
ユーザーがボタンをクリックして検索を実行できるようにするには、「search」ノードをページにドラッグ・アンド・ドロップします。「作成」メニューから、「パラメータ」、「ADFパラメータ・フォーム」の順に選択します。「フォーム・フィールドの編集」ダイアログが表示されます。
「OK」をクリックします。図27-37に示すように、ADFパラメータ・フォームがページに追加されます。
検索結果を読取り専用表に表示できるようにするには、「Return」ノードをページにドラッグ・アンド・ドロップします。「作成」メニューで「表」を選択し、「ADF読取り専用表」を選択します。「表の列の編集」ダイアログが表示されます。
「OK」をクリックします。図27-38のような表が表示されます。
このページを実行し、「search_path」で/
を指定し、「namePattern」で%jpg%
を指定します。図27-39に示すように、リポジトリのルートに格納されているすべての.jpg
ファイルが表示されます
この項では、ファイル・システム・リポジトリに含まれるアイテムの最終変更日に基づいて検索を実行することを可能にする拡張検索機能をページに追加します。
拡張検索機能を有効にするには:
アプリケーション・ナビゲータで、拡張検索機能を作成するページを開きます。ページは、新規マネージドBean内に自動的に公開される必要があります(name=advancedSearch
、class=AdvancedSearch
、package=view
)。(「JSFページの作成」ダイアログ→「ページの実装」→「新規マネージドBeanでのUIコンポーネントの自動公開」)
この例では、ページ名はadvancedSearch.jspx
です。
ページをダブルクリックして開きます。
コンポーネント・パレットで「ADF Faces」を選択します。
「ADF Faces」→「レイアウト・コンポーネント」のリストから、「パネル・フォーム・レイアウト」をページにドラッグします。
コンポーネント・パレットから、「入力日」を「パネル・フォーム・レイアウト」にドラッグします。
プロパティ・インスペクタの「共通」タブで、「ラベル」を「Modified after」に設定します。
アプリケーション・ナビゲータの「portal.backing」で、AdvancedSearch.javaをダブルクリックして開きます。
次のインポート宣言を追加します。こうした宣言は、次の手順で追加するgetPredicates
メソッドで必要になります。
import java.util.ArrayList; import java.util.Calendar; import java.util.Date; import java.util.List; import oracle.vcr.datacontrol.search.Predicate; import oracle.vcr.datacontrol.search.Operator;
リポジトリに格納されたアイテムの最終変更日に基づく拡張検索を有効にするために、次のメソッドを追加します。
public List<Predicate> getPredicates() { ArrayList<Predicate> predicates = new ArrayList<Predicate>(); if (id1.getValue() != null && !id1.getValue().equals("")) { Calendar cal = Calendar.getInstance(); cal.setTime((Date)id1.getValue()); predicates.add(new Predicate("jcr:content/jcr:lastModified" , Operator.GREATER_THAN , cal)); } // ... other predicates if (predicates.size()>0) return predicates; return null; }
「データ・コントロール」パネルで、「advancedSearch」ノードをページにドラッグ・アンド・ドロップします。「作成」メニューから、「メソッド」、「ADFボタン」の順に選択します。「アクション・バインディングの編集」ダイアログが表示されます。
「パス」では、検索を行うディレクトリのパス(/
など)を指定します。isRecursiveではtrue
を指定し、matchAnyではfalse
を指定します。
条件として、「値」フィールドの隣にある矢印を選択して、「EL式ビルダーの表示」を選択します。「変数」ダイアログが表示されます。
「ADFマネージドBean」、「backingBeanScope」および「advancedSearch」を開き、「述語」を選択します。これによって、式${backingBeanScope.advancedSearch.predicates}
が、図27-40に示すように追加されるので、「OK」をクリックします。
「アクション・バインディングの編集」ダイアログで「OK」をクリックします。
「データ・コントロール」パネルで、「advancedSearch」ノードを開きます。「Return」をドラッグし、ページの「advancedSearch」ADFボタンの後にドロップします。「作成」メニューで「表」を選択し、「ADF読取り専用表」を選択します。
「表の列の編集」ダイアログで、必要に応じて列のラベルを編集します。次に、「OK」をクリックします。図27-41のような「設計」ビューが表示されます。
プロパティ・インスペクタの「動作」タブで、ContentDelivery
プロパティをimmediate
に設定します。
ブラウザでページを表示するには、アプリケーション・ナビゲータでページを右クリックし、「実行」を選択します。ブラウザにadvancedSearch
ページが表示されます。
「最終変更」日付を入力して「advancedSearch」ボタンをクリックします。図27-42に示すように、該当日の後に変更されたファイルが表示されます。
実行時に「検索」ボタンをクリックすると、search
メソッドが起動し、UIを通じて提供された値がパラメータとして検索に使用されます。実行時に、ワイルドカード(%
)検索を実行できます。たとえば、.jpg
拡張子を持つファイルを検索するには、「search_path」フィールドに/
を入力し、「namePattern」フィールドに%jpg
を入力して、「検索」をクリックします。.jpg
拡張子を持つすべてのファイルが読取り専用表に表示されます。
実行時に、JCRデータ・コントロールでは指定パラメータを使用して、指定パラメータのXPath
問合せを構成します。標準検索の例では、問合せは次のとおりです。
Non-recursive: XPath query /jcr:root/element(*, nt:file)[jcr:like(ojcr:local-name(), '%jpg%')] Recursive: XPath query /jcr:root//element(*, nt:file)[jcr:like(ojcr:local-name(), '%jpg%')]
拡張検索の例では、advancedSearch
メソッドのpredicate
パラメータ値を構成するのにバッキングBeanが必要であるので、まずバッキングBeanをページに追加します。次に、「パネル・フォーム・レイアウト」UIコンポーネントをページにドロップします。このコンポーネントで、日付ベースの検索条件を提供するために実行時に使用されるInputDate
コンポーネントをドロップします。advancedSearch
メソッドの条件パラメータでは、search
メソッドに条件の組合せを指定できます。それぞれのパラメータでは、検索に適用する必要があるアイテムのプロパティ値を指定できます。この例では、条件で変更日のみがテストされますが、変更日付とmimeType
など、複数のテストを含めることもできます。
バッキングBeanのgetPredicates
メソッドは、実行時にページにより提供される日付からpredicates
メソッドを構成するためにハードコーディングされています。設計時に、predicates
メソッドの戻り値は、条件のadvancedSearch
メソッドのパラメータにバインドされます。これによって、実行時に正しいpredicate
値を構成するために、advancedSearch
メソッドを起動する前にgetPredicates
メソッドを起動します。
実行時に、JCRデータ・コントロールでは指定パラメータを使用して、指定パラメータのXPath
問合せを構成します。この例では、問合せは次のとおりです。
/jcr:root//element(*, nt:hierarchyNode)[jcr:content/@jcr:lastModified > xs:dateTime('2009-02-15T00:00:00.000+05:30')]
検索機能を追加するときは、次の点を考慮してください。
特定の操作の使用方法は、アダプタと、基礎となるリポジトリの実装によって異なります。読取り操作と問合せ操作は似ていますが、全文検索の動作は異なります。また別の例として、ファイル・システムおよびOracle Portalのアダプタでは、primaryType
属性に基づいた検索はサポートされていません。typeに基づく検索方法でサポートされているのは、要素(*
, type)構成を介した検索のみです。
Oracle Portalアダプタを使用する場合、検索機能の動作は、「Oracle Text」が有効であるか、または無効であるかによって異なります。「Oracle Text」が無効である場合、検索はOracle Portalコンテンツのメタデータ内で実行されます。「Oracle Text」を有効にすると、ファイルのコンテンツを含めて、すべての索引付きコンテンツが検索されます。これはまた、Content Serverにも該当します。つまり、Content Serverベースのアダプタは、「Oracle Text」を使用してドキュメントに対して全文索引操作を実行します。
Oracle Portalアダプタでは翻訳はサポートされていないため、コンテンツはページ・グループの基本言語でのみ返されます。基本言語が異なる複数のページ・グループにわたる検索は、サポートされていません。