ここでは、ウィザードを使用して簡単に、アプリケーションとプロジェクト、さらに属性、ファセット、メソッドで構成される宣言的コンポーネント定義を作成します。 作成する宣言的コンポーネントは、1つのメニューを含むメニュー・バーです。 宣言的コンポーネント定義のメタデータを使用することで、ページ作成者はメニュー項目にラベルを設定してメソッドを関連付け、その他のメニューを追加できます。
詳細を表示/非表示非表示

宣言的コンポーネントのレイアウトを作成するため、ここではビジュアル・エディタ、コンポーネント・パレット、プロパティ・インスペクタなどの設計ツールを使用します。 その後で、プロジェクトをADF Library JARファイルにデプロイします。 宣言的コンポーネントを使用するアプリケーションに対しては、リソース・パレットを使用してデプロイしたJARを追加し、次にJSFページを含むプロジェクトにデプロイ済みJARを追加します。 宣言的コンポーネントを利用するには、シンプルなJSFページにこれを追加し、事前定義された属性を編集し、メソッドを作成して宣言的コンポーネントに関連付けます。 アプリケーションを実行すると、ページは次のように表示されます。

ブラウザ、ページの実行

目的 所要時間 アプリケーション
このチュートリアルでは、ADF宣言的コンポーネントのメタデータを作成し、複合コンポーネントを構成するADF Facesコンポーネントを追加し、JSFページ上で宣言的コンポーネントを使用する方法を示します。 これから作成するアプリケーションの完成版を確認するには、「Download」ボタンをクリックして最終的なアプリケーションのzipファイルをダウンロードし、JDeveloperのmyworkフォルダに解凍してください。 40分 declarativecomponents.zipのダウンロード
ステップ1: 新規アプリケーションおよびプロジェクトの作成
  1. メイン・メニューから「File」→「New」を選択します。 New Galleryで、Generalカテゴリを開き、「Applications」を選択します。 Itemsリストで「Fusion Web Application (ADF)」を選択し、「OK」をクリックします。

    New Gallery、Applications
  2. JDeveloperアプリケーションは、組織構造の最上位レベルです。 アプリケーションの開発中に、操作しているオブジェクトの情報がここに格納されます。 詳細を表示/非表示非表示 同時に、プロジェクトとすべての環境設定が追跡記録されます。

    Oracle JDeveloperアプリケーションでは、作成するアプリケーションのタイプ(WebアプリケーションやJavaアプリケーションなど)に応じて、あらかじめ構築されたテンプレートに基づいて、事前定義された環境のタイプを指定できます。 アプリケーション・テンプレートには適切な機能の組合せが事前に指定されているため、標準アプリケーションのプロジェクト構造を素早く作成できます。 また、使用している機能に合った選択肢のみが使用できるように、JDeveloperで実行する処理がアプリケーション・テンプレートによりフィルタリングされます。

    このチュートリアルでは、2つのアプリケーションを作成します。1つは宣言的コンポーネント用で、もう1つは宣言的コンポーネントを使用するアプリケーション用です。 宣言的コンポーネント・アプリケーションに対してはCustom Applicationテンプレートを使用します。このテンプレートでは、JDeveloperがサポートするすべての機能の関連オブジェクトを1つのプロジェクトから使用できます。 宣言的コンポーネントを使用するアプリケーションには、データバインドされたADF Webアプリケーションを構築するために構成されたFusion Web Application(ADF)テンプレートを使用します。

    適切なテンプレートを使用してアプリケーションを作成した後も、新しいプロジェクトをアプリケーションに追加し、追加する機能を指定できます。 これを実行するには、アプリケーション・ナビゲータでアプリケーション名を右クリックして、「New Project」を選択します。 New Galleryでは、Itemsリストから任意のタイプのプロジェクトを選択できます。
  3. 例に従って、アプリケーション名にMyWebAppと入力します。

    Fusion Webアプリケーションの作成
  4. 初期プロジェクト構造(アプリケーションの作業領域内の名前付きプロジェクト・フォルダ)および追加されるアプリケーション・ライブラリは、選択したアプリケーション・テンプレートによって決まります。 詳細を表示/非表示非表示 関連する機能は、アプリケーション内のプロジェクトで定義されます。

    JDeveloperプロジェクトは、関連するファイルを論理的にグループ化する際に使用します。ここでは、ソース・ファイル、パッケージ、クラス、イメージ、およびプログラムで必要になるその他の要素が管理されます。 プロジェクトでは、プログラムのコンパイル時や実行時に使用するソース・パスや出力パスなどの環境変数を管理します。 また、プロジェクトには、コンパイラ、ランタイム、デバッグに関するオプションが用意されており、プロジェクトごとにこれらのツールの動作をカスタマイズできます。

    ソース・コードのアクセス、変更、再利用を簡単にするために、複数のプロジェクトをアプリケーションに追加できます。 それぞれのプロジェクトに含まれるファイルは、たとえば多層アプリケーションにおける各層に相当する場合もあれば、複雑なアプリケーションにおける各サブシステムに相当する場合もあります。 これらのファイルはどのディレクトリに配置されていても、1つのプロジェクトに含めることができます。
  5. デフォルト値のままにして、「Finish」をクリックします。

    新しいFusion Webアプリケーションを作成すると、Application Overviewウィンドウがデフォルトでエディタ・ウィンドウ領域に開きます。 このウィンドウは今回のアプリケーションに対するオブジェクト作成では使用しないため、任意で閉じて構いません。

    Application Overviewウィンドウ

  6. このウィンドウの各ファイル概要ページには、JDeveloper内で作成されるすべてのオブジェクトがオブジェクト・タイプごとに分類されて表示されます。 新規作成したファイルとアーチファクトは、ステータスやプロジェクトでフィルタして表示できます。 詳細を表示/非表示非表示

    チェックリストは、Oracleが推奨するベストプラクティスに従ってFusion Webアプリケーションの構築をガイドします。 必要に応じて、アプリケーションの構成および構築プロセス全体の手順を示し、特定のダイアログやウィザードへのリンクを提示します。 各ステップはアーキテクチャ、ツール、結果のファイルについての情報を提供するように設計されており、段階的な手順や開発者ガイドの関連セクション、ステップ作業の実行によるIDEへの影響の説明に対するリンクが提供されます。
  7. メイン・メニューから再度、「File」→「New」を選択します。 New Galleryで、Generalカテゴリを開き、「Applications」を選択します。 Itemsリストで「Custom Application」を選択し、「OK」をクリックします。

    New Gallery、Applications

  8. Application NameにDeclarativeComponentsと入力し、「Next」をクリックします。

    Create Custom Application、Application Name

  9. Project NameにDeclarativeComponentsと入力し、「Finish」をクリックします。

    Create Custom Application、Project Name

  10. アプリケーション・ナビゲータで、先ほど作成したプロジェクトをダブルクリックして、Project Propertiesダイアログを開きます。 「JSP Tag Libraries」と「Distributed libraries」を選択して、「Add」をクリックします。

    Project Propertiesダイアログ、JSP Tag Libraries

  11. Choose Tag Librariesダイアログで「ADF Faces Components 11」を選択し、「OK」を2回クリックして、ダイアログを両方とも閉じます。

    Choose Tag Librariesダイアログ
  12. ライブラリは、JDeveloperとともにインストールされるさまざまなAPIやテクノロジー用に提供されています。 詳細を表示/非表示非表示

    Oracle ADF Facesは、ADF FacesコンポーネントのJSPタグ・ライブラリを提供します。 ADF Facesコンポーネントのタグ・ライブラリを追加すると、JDeveloperは、タグ・ライブラリ記述子(TLD)ファイルの名前と場所、タグ・ライブラリの一意の識別子、実行時にタグ・ライブラリからタグを実行するために必要なJavaライブラリの名前、ライブラリがJSPページで使用される際のタグの接頭辞として望ましい値を追加します。

    タグ・ライブラリを追加した後のProject Propertiesダイアログ

    デフォルトでは、コンポーネント・パレットのADF FacesページにADF Facesタグが表示され、タグ・ライブラリのすべてのタグはJSPビジュアル・エディタで使用可能な、シミュレートされたJSP/サーブレット・コンテナで実行されます。 設計時に実行する必要があるタグをカスタマイズするには、Project PropertiesダイアログのJSP Tag Librariesページでタグ・ライブラリを選択して、「Customize」をクリックします。
  13. Save AllSave Allをクリックして作業内容を保存します。

    DeclarativeComponentsアプリケーションのProjectsパネルは、アプリケーション・ナビゲータに次のように表示されます。

    アプリケーション・ナビゲータ、DeclarativeComponentsプロジェクト

  14. テンプレートから作成された新規アプリケーションは、プロジェクト階層に分割されてアプリケーション・ナビゲータに表示されます。各プロジェクトには関連する機能が設定されています。 詳細を表示/非表示非表示 アプリケーション・ナビゲータでは、プロジェクトは階層内の最上位レベルとして表示されます。

    DeclarativeComponentsアプリケーションで使用したCustom Applicationテンプレートは、入力されたプロジェクト名を使用してプロジェクトを作成します。 宣言的コンポーネントの定義をDeclarativeComponentsプロジェクトに作成し、次に、このプロジェクトをデプロイします。

    MyWebAppアプリケーションに切り替えるには、アプリケーション・ナビゲータのApplicationsドロップダウン・リストから「MyWebApp」を選択します。

    Applicationドロップダウン・リスト、アプリケーション・ナビゲータ

    MyWebAppアプリケーションに対するProjectsパネルは、アプリケーション・ナビゲータで次のように表示されます。

    アプリケーション・ナビゲータ、MyWebAppプロジェクト Webアプリケーションに使用される

    Fusion Web Application(ADF)
    テンプレートでは、アプリケーションを2つのプロジェクト(ModelViewController)に分割します。. ここでは、ViewControllerプロジェクトにJSFページを作成します。

    アプリケーション・ナビゲータのパネルはいずれも開閉できます。 2つのパネルの間のスプリッタをドラッグすれば、パネルのサイズを調整できます。 Projectsパネルで項目のグループ化やソートを行う場合は、Navigator Display OptionsNavigator Display Optionsドロップダウン・メニューを使用します。 アプリケーションを操作するには、「applicationApplication Menuをクリックして、ドロップダウン・メニューからオプションを選択します。

    JDeveloperには多種多様なファイル・タイプを識別する機能が備わっており、アプリケーション・ナビゲータでファイルをダブルクリックすると、適切なビューアまたはエディタでファイルが表示されます。 アプリケーションまたはプロジェクトを終了すると、そのアプリケーションまたはプロジェクトのファイルを表示していたすべてのエディタまたはビューアが閉じられ、メモリからファイルがアンロードされます。

    注:アプリケーション・ナビゲータのイタリック体のノードは、これらの要素が保存されていないことを示しています。 プロジェクトに含まれるファイルが選択されている場合、プロジェクト・ノードは太字で表示されます。
ステップ2: 宣言的コンポーネント用メタデータの作成
  1. 必要に応じて、アプリケーション・ナビゲータのドロップダウン・リストから「DeclarativeComponents」を選択し、DeclarativeComponentsアプリケーションに切り替えます。

    アプリケーション・ナビゲータのドロップダウン・リストからアプリケーションを選択

  2. アプリケーション・ナビゲータで「DeclarativeComponents」プロジェクトを右クリックし、「New」→「Web Tier」→「JSF/Facelets」→「ADF Declarative Component」の順に選択して、「OK」をクリックします。

    New Gallery、ADF Declarative Component
  3. ADF宣言的コンポーネントは再使用可能な複合コンポーネントであり、既存のADF Facesコンポーネントで構成されています。 詳細を表示/非表示非表示

    宣言的コンポーネントは、異なるコンテンツあるいは同一のコンテンツを含む、1つのページの異なる部分または複数のページを構築するための基盤として使用できます。 たとえば、1ページの異なる部分または複数ページにわたって共通する一連のボタンがある場合、これらのボタンを含む宣言的コンポーネントを作成してから、共通の機能を必要とするページ上で、その宣言的コンポーネントを使用できます。

    宣言的コンポーネントを、コンポーネントが定義されたプロジェクト内で使用することはできません。 言い換えると、あるプロジェクトで宣言的コンポーネントを作成したら、この宣言的コンポーネントを使用するページは別のプロジェクトで作成する必要があります。
  4. 宣言的コンポーネントの名前としてmyMenubarと入力します。

  5. ドキュメント・タイプとして「Facelets」を選択し、デフォルトのファイル名、ディレクトリ名、パッケージ名を受け入れます。

    Create ADF Declarative Componentダイアログ
  6. 宣言的コンポーネントは、XMLで記述されたコンポーネント定義ファイル内に作成されます。 指定する宣言的コンポーネント名は、コンポーネント・タグに対して生成されるJavaクラスの名前として使用されるだけではなく、宣言的コンポーネントの表示名として、コンポーネント・パレットでも使用されます。詳細を表示/非表示非表示 宣言的コンポーネントの名前に使用できるのは半角英数字のみ(SampleNameまたはSampleName1など)です。 宣言的コンポーネントのパッケージ名は、後から宣言的コンポーネントにJavaクラスを作成する際に、JDeveloperによって使用されます。

    また、JDeveloperはデフォルトで、宣言的コンポーネントの定義ファイルのXMLファイル名に宣言的コンポーネント名を使用します(sampleName1.jsfなど)。 宣言的コンポーネントは、コンポーネント定義ファイル内部の2つのセクション、メタデータ・セクションとレイアウト・セクションで示されます。前者にはコンポーネントのすべてのメタデータ(コンポーネントの表示名やタグ・ライブラリ情報)が含まれ、後者には宣言的複合コンポーネントを構成する個々のADF Facesコンポーネントがすべて含まれます。
  7. Add Tag Library」をクリックして、Create Declarative Component Tag Libraryダイアログを開きます。

    Create Declarative Component Tag Libraryダイアログ

  8. ここで次の値を入力し、「OK」をクリックします。

    フィールド
    Tag Library Name MyDeclComponents
    Tag Library URI /mycomponents
    Tag Library Prefix mc
  9. タグ・ライブラリ名は、宣言的コンポーネントを含むタグ・ライブラリの名前です。 詳細を表示/非表示非表示

    タグ・ライブラリのURIと接頭辞は、宣言的コンポーネントのタグ・ライブラリの名前空間と接頭辞を指定します。これらは、宣言的コンポーネントを消費するJSFページ内でJDeveloperによって使用されます。 次に例を示します。
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <f:view xmlns:f="http://java.sun.com/jsf/core"
            xmlns:af="http://xmlns.oracle.com/adf/faces/rich"
            xmlns:mc="/mycomponents">
  10. Create ADF Declarative Componentダイアログで、Facet Definitionsタブを前面に表示し、「add」をクリックして今後のコンテンツのためにプレースホルダを追加します。 NameフィールドにmoreMenusと入力します。

    Create ADF Declarative Component、Facet Definitions
  11. Create ADF Declarative Componentダイアログは、宣言的コンポーネントの表示名、任意のファセット定義、属性またはコンポーネントに含まれている可能性のあるメソッドなど、宣言的コンポーネントのメタデータの作成に役立ちます。 詳細を表示/非表示非表示

    ADFページ・テンプレートと同様に、ADF宣言的コンポーネントにもファセット、属性、メソッドが含まれており、ページ作成者はこれらを使用することで、異なるページやページ内の異なる部分での宣言的コンポーネントの使用方法を設定できます。 たとえば、ページ作成者が宣言的コンポーネント内の個々のボタンに対してラベルを変更できるような属性を追加できます。

    提供する複合コンポーネントの機能によっては、宣言的コンポーネントのメタデータ作成時にファセット定義、属性、またはメソッドのいずれかを追加する必要がない場合もあります。 これは、宣言的コンポーネントに対するファセット定義、属性、メソッドの追加が必須ではないためです。 このチュートリアルでは、それぞれのタイプを1つずつ追加します。

    ページ・テンプレートと同様に、宣言的コンポーネント内のファセットは複合コンポーネント内に定義された領域であり、ページ作成者が宣言的コンポーネントを使用してページの一部を作成する際、ここにコンテンツを追加できます。 ページ作成者が独自のコンテンツを宣言的コンポーネントに追加できるようにするには、将来的なコンテンツのプレースホルダとして1つまたは複数のファセットを定義しておきます。

    たとえば、宣言的コンポーネントにパネル・ヘッダー・コンポーネントが含まれており、ページ作成者がこのパネル・ヘッダー内に独自のコンテンツを追加できるようにする場合、pheader-contentsという名前のファセット定義を追加します。 次に、宣言的コンポーネントのレイアウトを設計する際、ページ作成者がパネル・ヘッダー・コンポーネントにコンテンツをドロップできるようにするため、af:facetRefタグをaf:panelHeaderコンポーネントに挿入し、pheader-contentsファセット名を参照します。 次に例を示します。
    <af:panelHeader text="panelHeader 1" id="dc_ph1">
       ...
       <af:facetRef facetName="pheader-contents"/>
    </af:panelHeader>
  12. Attributes」をクリックしてタブを前面に表示し、「add」をクリックして属性を追加して、後から宣言的コンポーネントに設定できるようにします。 NameフィールドにmenuLabelと入力します。 Typeはデフォルト値のjava.lang.Stringを受け入れます。

    Create ADF Declarative Component、Attributes
  13. 複合コンポーネントに含まれるコンポーネントのプロパティをページ作成者が設定または変更できるようにするには、宣言的コンポーネントに対して1つ以上の属性を定義します。 詳細を表示/非表示非表示

    たとえば、ページ作成者がパネル・ヘッダー・コンポーネントに独自のタイトルを設定できるようにするには、pheader-titleと言う名前とjava.lang.Stringというタイプを指定した属性を追加します。 次に、宣言的コンポーネントのレイアウトを設計する際、ページ作成者が独自のパネル・ヘッダー・タイトルを設定できるようにするため、宣言的コンポーネントのvar属性を使用して、af:panelHeadertext属性のpheader-titleを参照するEL式を挿入します。 次に例を示します。

    <af:panelHeader text="#{attrs.pheader-title}".../>
  14. Methods」をクリックしてタブを前面に表示し、「add」をクリックしてメソッドを追加して、後から宣言的コンポーネントに登録できるようにします。 デフォルトのメソッド名method1を受け入れます。 Method Signatureフィールドにvoid method(javax.faces.event.ActionEvent)と入力します。

    Create ADF Declarative Component、Methods
  15. 宣言的コンポーネント内のコンポーネントのプロパティに対して、ページ作成者がメソッドを関連付けられるようにするには、ここで1つ以上のメソッドを定義します。 詳細を表示/非表示非表示

    たとえば、宣言的コンポーネントにコマンド・ボタンが含まれており、ページ作成者が独自のアクション・リスナー・メソッドを関連付けられるようにするには、method1という名前とvoid method(javax.faces.event.ActionEvent)メソッド・シグネチャが設定されたメソッドを追加します。 次に、宣言的コンポーネントのレイアウトを設計する際、宣言的コンポーネントのcomponentVar属性を使用して、af:commandButtonコンポーネントのactionListener属性のmethod1メソッドを参照するEL式を挿入します。 次に例を示します。

    <af:commandButton text="commandButton 1" id="dc_cb1"
                      actionListener="#{comp.handleMethod1}"/>>
  16. OK」をクリックします。

    デフォルトで、JDeveloperはビジュアル・エディタに新しい宣言的コンポーネント定義ファイルを開きます。

    ビジュアル・エディタ、コンポーネント・パレット

  17. Save AllSave Allをクリックして作業内容を保存します。

  18. af:componentDefノードが開かれている場合、myMenubar.jsfのStructureウィンドウは次のように表示されます。 詳細を表示/非表示非表示

    コンポーネント定義のStructureウィンドウ

    宣言的コンポーネントのすべての定義は、af:componentDef要素内に含まれます。この要素は2つの部分に分かれており、af:xmlContent要素と、af:xmlContent要素の外部にあって宣言的コンポーネントのレイアウトを定義するコンポーネントで構成されています。 この時点では、af:xmlContentの外部にコンポーネントは存在しません。

    af:xmlContent要素には、宣言的コンポーネントの名前、ファセット、属性、関連付けられたメソッド・シグネチャ、およびタグ・ライブラリの詳細を示すメタデータが含まれます。 af:xmlContentの外部(ただしaf:componentDefの内部)に挿入するコンポーネントは、どれも宣言的複合コンポーネントのレイアウトを構成します。

    宣言的コンポーネントのメタデータはいつでも変更できます。これには、ファセット、属性、メソッドの追加が含まれます。 Structureウィンドウで、af:xmlContent内の「af:componentDef」または任意の要素を選択します。 次に、プロパティ・インスペクタを使用して、メタデータを編集します。 プロパティ・インスペクタでは、タグ・ライブラリの詳細(名前や接頭辞など)を変更できません。

    プロパティ・インスペクタ、Component Def

    アプリケーション・ナビゲータに表示されたdeclarativecomp-metadata.xmlファイルは、定義プロジェクト内に作成するすべての宣言的コンポーネントを追跡するためにJDeveloperによって作成された特殊なファイルです。

    アプリケーション・ナビゲータ、メタデータXMLファイル

    declarativecomp-metadata.xmlファイルには宣言的コンポーネント定義ファイルの名前とパスに加えて、宣言的コンポーネントを含むタグ・ライブラリの情報が格納されています。 次に例を示します。
    <declarativeCompDefs xmlns="http://xmlns.oracle.com/adf/faces/rich/declarativecomp">
      <declarativecomp-jsp-ui-def>/myMenubar.jsf</declarativecomp-jsp-ui-def>
      <declarativecomp-taglib>
        <taglib-name>MyDeclComponents</taglib-name>
        <taglib-uri>/mycomponents</taglib-uri>
        <taglib-prefix>mc</taglib-prefix>
      </declarativecomp-taglib>
    </declarativeCompDefs>
ステップ3: 宣言的コンポーネントのレイアウトの定義
  1. コンポーネント・パレットのADF FacesページのMenus and Toolbars パネルで、「menuMenu Barをドラッグして、ビジュアル・エディタの空白ページにドロップします。

    ビジュアル・エディタにコンポーネントをドラッグすると、Component Defという名前の長方形の領域がページ上に表示されます。これは、今ドラッグしているコンポーネントがそのターゲット・コンポーネント内に挿入されることを意味しています。

    ビジュアル・エディタ、firstコンポーネントへの挿入
  2. 宣言的コンポーネントのレイアウトの定義には、ADF Facesコンポーネントをいくつでも使用できます。 詳細を表示/非表示非表示 通常、最初にレイアウトまたはコンテナ・コンポーネント(Panel Group Layoutなど)を追加してから、このレイアウトまたはコンテナ・コンポーネントに他のコンポーネントを挿入します。

    宣言的コンポーネントのレイアウトにコンポーネントを追加する方法は、JSFページにコンポーネントを追加する方法と似ています。 設計ツールを自由に組み合わせて、宣言的コンポーネントのレイアウトを作成できます。 たとえば、ビジュアル・エディタ、プロパティ・インスペクタ、コンポーネント・パレットを使用して、メニュー・バーを作成できます。

    宣言的コンポーネント定義のレイアウト部分に、次のADF Facesコンポーネントを挿入します。
    • メニュー・バー・コンポーネント

    • メニュー・コンポーネント(メニュー・バー内部に挿入)

    • 2つのメニュー項目コンポーネント(メニュー・コンポーネント内部に挿入)

    ADFデータバインド・コンポーネントを宣言的コンポーネントのレイアウト部分に含めることはできません。 たとえば、データ・コントロール・パネルから項目をドラッグ・アンド・ドロップすることはできません。
  3. 追加したメニュー・バーに、「menuMenuをドラッグ・アンド・ドロップします。

  4. Menuのプロパティ・インスペクタのCommonセクションで、Text属性の値をFileに変更します。

    プロパティ・インスペクタ

  5. コンポーネント・パレットのMenus and Toolbarsパネルで、先ほど追加したメニュー・コンポーネントに「menu itemMenu Itemをドラッグ・アンド・ドロップします。

  6. プロパティ・インスペクタのCommonセクションで、Textの値をDeleteに変更します。

    ここまでに追加した3つのコンポーネントがStructureウィンドウに表示されます。

    Structureウィンドウ

  7. Menu Itemのプロパティ・インスペクタのAppearanceセクションで、Iconフィールドの横に表示されているプロパティドロップダウン・メニューから「Edit」を選択します。 続いて、ダイアログを使用してイメージ・ファイルを検索し、選択します。

    プロパティ・インスペクタ、ドロップダウン・メニュー
  8. JDeveloperのイメージ・ライブラリからイメージを選択するには、Edit Propertyダイアログで<jdev_home>/jdeveloper/ide/lib/フォルダを検索し、「oicons.jar」をダブルクリックして開きます。 詳細を表示/非表示非表示 次に、oracle/javatools/iconsへ移動して、イメージ・ファイル「delete.png」を選択します。

    アイコンのEdit Propertyダイアログ
  9. OK」をクリックします。 プロンプトが表示されたら、「Yes」をクリックしてアイコン・イメージをリソース・ディレクトリの下に追加し、「Save」をクリックします。

    プロパティ・インスペクタのIconフィールドに#{resource['images:delete.png']}と表示されます。

    プロパティ・インスペクタ

  10. コンポーネント・パレットのMenus and Toolbars パネルで、「menu itemMenu Itemをドラッグし、Structureウィンドウのaf:menu - File要素にドロップします。

    Structureウィンドウ、af:menuへの挿入

  11. 新しいMenu Itemのプロパティ・インスペクタのAppearanceセクションで、Iconフィールドの横に表示されているプロパティドロップダウン・メニューから「Edit」を選択します。 次に、このダイアログを使用して、先ほど追加したメニュー項目コンポーネントに対する別のイメージ(例:user.png)を探して選択します。

    アイコンのEdit Propertyダイアログ

  12. OK」をクリックします。 プロンプトが表示されたら、「Yes」をクリックしてアイコン・イメージをリソース・ディレクトリの下に追加し、「Save」をクリックします。

  13. 同じメニュー項目に対するプロパティ・インスペクタで、Textフィールドのデフォルト値を削除し、プロパティドロップダウン・メニューから「Expression Builder」を選択します。

    プロパティ・インスペクタのTextフィールド

  14. Expression BuilderでScoped Variablesを開き、次にattrsを開きます。 「menuLabel」をクリックして、式#{attrs.menuLabel}を作成します。 「OK」をクリックします。

    Expression Builder、JSPオブジェクト
  15. 式言語(EL)を使用すると、JSFページで簡単な式を使用して、オブジェクトに保存されたデータや参照にアクセスし、メソッドを起動することができます。 詳細を表示/非表示非表示

    宣言的コンポーネントのすべての定義は、af:componentDef要素内に含まれます。 af:componentDef内には、宣言的コンポーネントのレイアウトを構成する個々のコンポーネントと、属性やメソッドなどの宣言的コンポーネントのメタデータを含むaf:xmlContent要素が存在します。

    次に示すとおり、JDeveloperはデフォルトでaf:componentDefvar属性とcomponentVar属性に対して、それぞれattrsおよびcompという値を割り当てます。

    <af:componentDef var="attrs" componentVar="comp">

    var属性は、宣言的コンポーネントの固有属性にアクセスするために使用するEL変数の名前を指定します。 componentVar属性は、宣言的コンポーネントのインスタンス自体を参照する際に使用するEL変数の名前を指定します。

    宣言的コンポーネントのどこで属性を使用するかを指定するには、宣言的コンポーネント・レイアウト内のコンポーネントの適切なプロパティで、EL変数varと属性名を参照するEL式を使用します。 たとえば、ページ作成者がメニュー項目に独自のラベルを入力できるようにするには、コマンド・メニュー項目コンポーネントのtextプロパティにEL式を挿入します。

    <af:commandMenuItem id="dc_cmi2"
                        text="#{attrs.menuLabel}".../>


    ここで、menuLabelはメタデータ内に定義された属性名です。

    宣言的コンポーネントのどこでメソッドを使用するかを指定するには、宣言的コンポーネント・レイアウト内のコンポーネントの適切なプロパティで、EL変数componentVarとメソッド名を参照するEL式を使用します。 たとえば、ページ作成者がメニュー項目に独自のアクション・リスナー・メソッドを入力できるようにするには、コマンド・メニュー項目コンポーネントのactionListenerプロパティにEL式を挿入します。

    <af:commandMenuItem id="dc_cmi2"
                        actionListener="#{comp.handleMethod1}".../>


    ここで、method1はメタデータ内に定義されたメソッド名です。
  16. プロパティ・インスペクタのCommonセクションで、Menu Actionの下のActionListenerフィールドの横にあるプロパティドロップダウン・メニューから「Edit」を選択します。

  17. Edit Property: ActionListenerダイアログで、「Declarative Component Methods」を選択します。

    Edit Property ActionListenerダイアログ

  18. ドロップダウンにmethod1が表示されていることを確認し、「OK」をクリックします。

    プロパティ・インスペクタのActionListenerフィールドに、#{comp.handleMethod1}と表示されます。

    プロパティ・インスペクタ、ActionListener

  19. コンポーネント・パレットのLayoutパネルのCore Structureセクションで、「facetFacetをドラッグし、Structureウィンドウ内のaf:menuBar要素にドロップします。 Insert Facetダイアログで、ドロップダウン・リストから「moreMenus」を選択します。 「OK」をクリックします。

    Insert Facetダイアログ

  20. Save AllSave Allをクリックして作業内容を保存します。

    ビジュアル・エディタには次のようなページが表示されます。

    ビジュアル・エディタ、メニュー・バーとメニュー
  21. Structureウィンドウのaf:menuBar内で、af:menu - Fileの後にaf:facetRef要素が追加されていることを確認します。 詳細を表示/非表示非表示

    Structureウィンドウ

    これによって、必要に応じて、宣言的コンポーネントを使用するページ作成者がFileの後に付加的なメニューを追加できるようになります。 Facet Refタグは、宣言的コンポーネント・メタデータにあらかじめ定義されたファセット名を参照します。
ステップ4: ADF Library JARへの定義プロジェクトのデプロイ
  1. アプリケーション・ナビゲータで、「DeclarativeComponents」プロジェクトを選択します。 メイン・メニューから「Build」→「Deploy」→「New Deployment Profile」を選択します。

    Buildメニュー、Deploy、New Profile
  2. 宣言的コンポーネントを使用するWebページを、宣言的コンポーネントが定義されているのと同じプロジェクト内に配置することはできません。 詳細を表示/非表示非表示 宣言的コンポーネントを共有または再使用するには、まずそのようなコンポーネントの定義を含むプロジェクトをADF Library JARファイルにデプロイする必要があります。 複数の定義プロジェクトがある場合は、各プロジェクトを1つのADF Library JARにデプロイする必要があります。
  3. Create Deployment Profileダイアログで、Profile TypeにADF Library JAR Fileが指定されていることを確認します。 Deployment Profile NameにadflibDeclarativeComponents1と入力し、「OK」をクリックします。

    Create Deployment Profileダイアログ

  4. Edit ADF Library JAR Deployment Profile Propertiesダイアログで「JAR Options」をクリックしてJARファイル名を確認したら、「OK」をクリックします。

  5. JAR Fileフィールドのデプロイメント・プロファイルにADF Library JARの名前と場所が含まれています。 詳細を表示/非表示非表示

    ADF Library JAR Deployment Profile Propertiesダイアログ

    JDeveloperはデフォルトで、生成するADF Library JARの名前としてデプロイメント・プロファイル名を使用します。 プロファイル名を入力せずにデフォルト値を受け入れた場合、JDeveloperは、adflibNNNという形式を使用してJAR名を生成します。ここで、NNNは自動生成される数字です。

    また、JDeveloperは、ファイル・システムのプロジェクト・フォルダの下にあるデフォルトのdeployフォルダにADF Library JARを配置します。 配置されたJARファイルのデフォルト・フォルダの名前と場所を変更するには、「Tools」→「Preferences」を選択します。 次に、Deploymentページで相対または絶対プロジェクト・レベルのデプロイメント出力ディレクトリを変更します。

    デプロイメント・プロファイルの作成後にADF Library JARファイルの場所と名前を変更するには、プロジェクトをダブルクリックしてProject Projectsダイアログを開きます。 Deploymentページでプロファイルを選択し、「Edit」をクリックします。

    Project Propertiesダイアログ、Deploymentページ

    次に、ADF Library JAR Deployment Profile PropertiesダイアログのJAR Optionsページで、JARファイルの名前と場所を変更します。

    : ADF Library JARのファイル名には、開発チームのネーミング規則があればこれに従い、コンテンツの機能が分かるような名前を指定します。 たとえば、HRアプリケーションの宣言的コンポーネントだけを含むADF Library JARを作成する場合は、mycompany.HRApp.DeclComps.jarのような名前を使用します。
  6. Save AllSave Allをクリックして作業内容を保存します。

  7. アプリケーション・ナビゲータで、「DeclarativeComponents」プロジェクトを右クリックして、「Deploy」→「adflibDeclarativeComponents1」を選択します。 Deployウィザードで、Deploy to ADF Library JAR fileが選択されていることを確認します。 「Finish」をクリックしてデプロイを開始します。

    Deployウィザードのページ

  8. Deployment - Logウィンドウで、ADF Library JARファイルを含むdeployフォルダの場所を確認します。

    Deployment Logウィンドウ
  9. 宣言的コンポーネントの定義プロジェクトをADF Library JARにデプロイすると、JDeveloperはプロジェクトをコンパイルし、必要なアーチファクトと制御ファイルを作成して、関連するプロジェクト・ファイル(イメージ・ファイルなど)をJARにパッケージ化します。詳細を表示/非表示非表示 また、JARにはタグ・ライブラリ・ディスクリプタ・ファイル(.tldファイル)や、宣言的コンポーネントのために作成されたコンポーネント・クラスとタグ・クラスも含まれます。

    ADF Library JARファイルは、アプリケーション内のコンポーネント、または異なるアプリケーションにわたるコンポーネントをパッケージ化し、再使用するための便利な方法を提供します。 JARファイルは、同一チームの開発者、またはさまざまなチームの開発者や同じ組織の複数の部門が共有できます。 ADF Library JARファイルはモジュラー型であるため、宣言的コンポーネントのような再使用できるコンポーネントを変更した場合、定義プロジェクトも再デプロイする必要があります。
ステップ5: プロジェクトへのADF Library JARの追加
  1. リソース・パレットを開いていない場合は、メイン・メニューから「View」→「Resource Palette」を選択して開きます。 IDE Connectionsパネルを開きます。

    リソース・パレット
  2. 宣言的コンポーネントのような再使用できるコンポーネントを含むADF Library JARファイルを共有するには、他の開発者がアクセスしてプロジェクトにインポートできるようにするために、JARファイルをリポジトリに保存する必要があります。 詳細を表示/非表示非表示 リソース・パレットは、ADF Library JARファイルを配布および使用するための簡単で効率的な手段を提供します。

    再使用可能なコンポーネントの開発者は、プロジェクトのすべてのアーチファクトをADF Library JARにパッケージ化した後で、JDeveloperのリソース・パレットを使用して、そのJARを再使用可能なコンポーネントのリポジトリに追加します。 リソース・パレットは異なるソースにアクセスするための複数の接続を提供し、構造ツリー・ビューにさまざまな接続およびADF Library JARコンポーネントのタイプを表示します。 ここでは、ADF Library JARを保存および共有するためにファイル・システム接続を作成します。 ADF Library JARをリソース・パレットに追加すると、他の開発者はこれを検索してプロジェクトに追加できるようになります。

    再使用可能なコンポーネントの使用者はリソース・パレットを使用し、宣言的コンポーネントを含むADF Library JARを検索および参照します。 次に、宣言的コンポーネントを使用するプロジェクトにADF Library JARを追加します。 JARをプロジェクトのライブラリのセットに追加することで、JARは設計時にプロジェクトのクラス・パスに追加され、再使用可能になります。 実行時、再使用コンポーネントは、参照されることでJARファイルから実行されます。
  3. new Newドロップダウン・メニューから「New Connection」→「File System」を選択します。

    リソース・パレット、New Connectionメニュー・オプション

  4. Create File System Connectionダイアログで、Connection NameにDeclarativeComponentsと入力します。

    Create File System Connectionダイアログ

  5. Directory Pathフィールドの横にある「Browse」をクリックし、ダイアログを使用して「deploy」フォルダの場所を探し、フォルダを選択します。

    deployフォルダには、宣言的コンポーネント定義プロジェクトをデプロイしたステップで作成したADF Library JARが含まれています。

    Create File System Connectionダイアログに戻ると、deployフォルダのディレクトリ・パスが表示されます。

    Create File System Connectionダイアログ

  6. Test Connection」をクリックします。 Success!メッセージが表示されたら、「OK」をクリックします。

  7. リソース・パレットで、File SystemDeclarativeComponentsを開き、デプロイ済みのADF Library JARファイルであるadflibDeclarativeComponents1.jarを表示します。

    リソース・パレット、File System

  8. アプリケーション・ナビゲータで、ドロップダウン・リストから「MyWebApp」を選択し、宣言的コンポーネントを使用するアプリケーションに切り替えます。

    Applicationドロップダウン・リスト、アプリケーション・ナビゲータ

  9. アプリケーション・ナビゲータで、JSFページを格納した「ViewController」プロジェクトを選択します。

  10. 宣言的コンポーネントを使用するWebページは、宣言的コンポーネントが定義されたプロジェクトと同じプロジェクト内には配置できません。 詳細を表示/非表示非表示 このため、MyWebAppアプリケーションのViewControllerプロジェクト内にWebページを作成します。
  11. リソース・パレットで「adflibDeclarativeComponents1.jar」を右クリックし、「Add to Project」を選択します。

    リソース・パレット、Add to Projectコンテキスト・メニュー

  12. Confirm Add ADF Libraryダイアログで、「Add Library」をクリックします。

    アプリケーション・ナビゲータのViewControllerプロジェクト名が標準的なフォントからイタリックに変更されます。これは、プロジェクトが変更されたばかりで、まだ保存されていないからです。

    アプリケーション・ナビゲータ、MyWebApp
  13. プロジェクトでADF Library JARに含まれる宣言的コンポーネントを使用するには、使用側プロジェクトのライブラリ・セットにADF Library JARをロードする必要があります。 詳細を表示/非表示非表示

    使用側のプロジェクトにADF Library JARを追加すると、JDeveloperによって、宣言的コンポーネントを含むタグ・ライブラリがプロジェクトのFaceletsタグ・ライブラリに追加されます(Project PropertiesダイアログのFacelets Tag Librariesページを参照)。

    Project Properties、Facelets Tag Librariesページ

    また、JDeveloperはプロジェクト内にADF Library定義を作成し、プロジェクトのクラス・パスにADF Libraryを追加します(Project PropertiesダイアログのLibraries and Classpathページを参照)。

    Project Properties、Libraries and Classpathページ

    Edit」をクリックすると、クラス・パスにADF Library JARが表示されます。

    Edit Library Definitionダイアログ

    ADF LibraryのDeployed by Defaultオプションがデフォルトで選択されています。 これは、アプリケーションをWARファイルとしてアーカイブまたは構築すると、JDeveloperがADF Library JARのコンテンツをアーカイブまたはWARファイルにコピーすることを意味します。

    JSFページを設計する際、宣言的コンポーネントのタグ・ライブラリがコンポーネント・パレットに表示され、宣言的コンポーネントがパレットから選択できるようになります。
ステップ6: JSFページの作成と宣言的コンポーネントの追加
  1. アプリケーション・ナビゲータのViewControllerプロジェクトで、「adfc-config.xml」をダブルクリックして、デフォルトのページ・フロー・ダイアグラムを開きます。

    タスク・フロー・ダイアグラマ、コンポーネント・パレット
  2. Fusion Webアプリケーションには常にアンバウンド・タスク・フローが含まれており、このフローには、アプリケーションのエントリ・ポイントとなるViewアクティビティを多数格納できます。 詳細を表示/非表示非表示

    Fusion Web Applicationテンプレートを使用してFusion Webアプリケーションを作成すると、JDeveloperによって、デフォルトで空白のアンバウンド・タスク・フロー(ソース・ファイルadfc-config.xml)が作成されます。 ダイアグラムでは、通常、ユーザーのタスクを完了するために相互作用するアクティビティとコントロール・フロー・ルールを定義します。 このチュートリアルでは、作成するJSFページを表すViewアクティビティを1つ作成します。
  3. コンポーネント・パレットのADF Task FlowページのComponentsパネルで、「jsf pageViewをクリックし、次にダイアグラムをクリックして、ページ・アイコンをダイアグラムに追加します。 デフォルトのページ名をMyPageに変更します。

    タスク・フロー・ダイアグラム、Viewの追加
  4. 黄色の警告記号の付いたページ・アイコンがダイアグラムに表示されます。 詳細を表示/非表示非表示 黄色の警告記号は、Viewアクティビティがまだ物理的なページ・ファイル(例:MyPage.jsf)に関連付けられていないことを示しています。 ページ・ファイルを作成すると、ページ・アイコンの黄色の警告記号は消えます。
  5. ダイアグラムで追加したばかりのページ・アイコンをダブルクリックし、Create JSF Pageダイアログを開きます。

  6. Document Typeに「Facelets」を選択し、デフォルト・ファイル名(例:MyPage.jsf)を受け入れます。

    Create JSF Pageダイアログ

  7. Page Layoutページで「Blank Page」を選択します。

  8. Managed Bean」をクリックし、「Do Not Automatically Expose UI Components in a Managed Bean」を選択します。

  9. Create JSF Pageダイアログでは、UIコンポーネントをプログラムで操作できるようにするために、ページ上のUIコンポーネントをマネージドBean内に公開するかどうかをオプションで指定できます。 詳細を表示/非表示非表示

    デフォルトでは、コンポーネントはマネージドBeanに対して公開されません。 コンポーネントをマネージドBeanにバインドする場合は、このダイアログのManaged Beanページでいずれかの自動バインディング・オプションを選択します。

    Create ADF Page Fragmentダイアログ、Managed Beanページ

    既存のマネージドBeanに対するバインド方法のオプションを選択できるのは、アプリケーションにマネージドBeanが構成されている場合のみです。

    UIコンポーネントをマネージドBean内で自動的に公開するように指定すると、新規のJSFページを作成するたびに自動的にバッキングBeanが作成されます。 ページ上にコンポーネントをドロップすると、各コンポーネントにBeanプロパティが挿入され、コンポーネント・インスタンスとプロパティはbinding属性を使用してバインドされます。これにより、Beanでコンポーネント・インスタンスを受け取ったり返したりできるようになります。

    注:ページにADFバインディングを追加する場合は、自動バインディング機能を使用しないでください。 自動バインディング機能を使用した場合は、ADFバインディングを追加した後でマネージドBeanバインディングを削除する必要があります。
  10. OK」をクリックします。

    JDeveloperによってビジュアル・エディタにページが表示されます。

    ビジュアル・エディタ、MyPage.jsf

  11. コンポーネント・パレットのADF FacesページのLayoutパネルで、「flowlayoutPanel Group Layoutをドラッグしてビジュアル・エディタの空白ページにドロップします。

  12. プロパティ・インスペクタのCommonセクションで、Layout属性の値をscrollに変更します。

  13. コンポーネント・パレットで、ドロップダウン・リストから「MyDeclComponents」(先ほど作成したタグ・ライブラリ)を選択します。

    コンポーネント・パレット、MyDeclComponentsの選択

  14. 宣言的コンポーネント「MyMenubar」をドラッグし、ページ上のPanel Group Layoutコンポーネントにドロップします。

    コンポーネント・パレット、MyMenubarの選択

  15. Save AllSave Allをクリックして作業内容を保存します。

    ビジュアル・エディタには次のようなページが表示されます。

    ビジュアル・エディタ、宣言的コンポーネントのあるページ
  16. 宣言的コンポーネントのメタデータは定義済みのため、XMLエディタに切り替えると、宣言的コンポーネントのタグ・ライブラリの名前空間およびタグ接頭辞が表示されます。 詳細を表示/非表示非表示
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
     "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <f:view xmlns:f="http://java.sun.com/jsf/core"
            xmlns:af="http://xmlns.oracle.com/adf/faces/rich"
            xmlns:mc="/mycomponents">
      <af:document title="MyPage.jsf"..>
        <af:form..>
          <af:panelGroupLayout layout="scroll"..>
            <mc:myMenubar id="mm1">
              <f:facet name="moreMenus"/>
            </mc:myMenubar>
          </af:panelGroupLayout>
        </af:form>
      </af:document>
    </f:view>
    プロパティ・インスペクタに、宣言的コンポーネントで変更できる属性、MenuLabelおよびMethod1が表示されます。

    プロパティ・インスペクタ

    Structureウィンドウのaf:panelGroupLayoutの下に、宣言的コンポーネントmc:myMenubarが表示されます。 mc:myMenubarを開くと、MyMenubarファセット・フォルダ内にmoreMenusファセットが表示されます。

    Structureウィンドウ
ステップ7: ページ上の宣言的コンポーネントの変更
  1. Structureウィンドウで、宣言的コンポーネント「mc:myMenubar」を選択します。

  2. 作成した宣言的コンポーネントには属性(menuLabel)、メソッド定義(method1)、ファセット定義(moreMenus)が1つずつ含まれています。 詳細を表示/非表示非表示

    ページ作成者が独自のメニュー項目ラベルを入力できるようにするため、コマンド・メニュー項目コンポーネントのtextプロパティにはEL式#{attrs.menuLabel}を挿入しました。 設計時に、宣言的コンポーネントのmenuLabel属性を編集すると、コマンド・メニュー項目にtext値が渡されます。

    また、ページ作成者がメニュー項目に対して独自のアクション・リスナー・メソッドを入力できるようにするため、コマンド・メニュー項目コンポーネントのactionListenerプロパティにはメソッド式#{comp.handleMethod1}を挿入しました。 ページの設計時に、宣言的コンポーネントのmethod1属性を編集すると、メソッド式を介してコマンド・コンポーネントにアクション・リスナーが関連付けられます。 次に、アプリケーション・ユーザーがメニュー項目を選択した場合の処理を定義するため、アプリケーション内にマネージドBeanとして登録されているJavaBeanクラスにメソッド・コードを追加します。

    ページ作成者がメニュー・バーに追加メニューを追加できるようにするため、パネル・メニュー・バー・コンポーネントのmoreMenusを参照するFacet Refタグを挿入してあります。 後でmoreMenusファセットを編集し、メニュー・バーにメニューを追加します。
  3. プロパティ・インスペクタで、MenuLabel属性にHelloと入力します。

  4. Method1フィールドの横にあるpropertyドロップダウン・メニューから、「Edit」を選択します。

    プロパティ・インスペクタ、ドロップダウン・メニュー

  5. Edit Propertyダイアログで、Managed Beanドロップダウン・リストの横にある「New」をクリックします。

    Edit Propertyダイアログ、値なし
  6. マネージドBeanはアプリケーションによって使用されるJavaBeansであり、JSF構成ファイルfaces-config.xmlに登録されています。 詳細を表示/非表示非表示 ADFデータ・バインディングとADFタスク・フローを使用するアプリケーションでは、マネージドBeanは構成ファイルadfc-config.xmlまたはタスク・フロー定義ファイルに登録されている必要があります。

    アプリケーションが起動する際、構成ファイル(1つまたは複数)を解析することでBeanが使用可能になります。 マネージドBeanが参照される(たとえば、値式と呼ばれるコンポーネントのタグ属性の値としてEL式内で参照される)と、マネージドBean作成機能が、そのBeanのデフォルトのコンストラクタ・メソッドを呼び出してBeanをインスタンス化します。 プロパティが宣言されている場合は、それらに宣言済みのデフォルト値が設定されます。

    マネージドBeanは、構成ファイルの<managed-bean>要素を使用して登録されています。 構成ファイルでXMLを手動で編集するか、adfc-config.xmlまたはfaces-config.xmlに対して概要エディタを使用するか、もしくはCreate Managed Beanダイアログを使用することにより、マネージドBeanを構成ファイルに追加できます。

    Create Managed Beanダイアログ
  7. Create Managed Beanダイアログで次の値を入力または選択して、「OK」をクリックします。

    フィールドまたはオプション
    Bean Name myBean
    Class Name MyBean
    Extends java.lang.Object
    Scope request
    Registration Configuration File
    Generate Class If It Does Not Exist 選択する
  8. マネージドBeanを定義するには、構成ファイルにエントリを追加します。具体的には、Beanを参照する際に使用するシンボリック名を指定し、Beanをインスタンス化するときに使用するクラスを特定します。 詳細を表示/非表示非表示 このシンボリック名は、Beanのプロパティとメソッドを参照する必要がある際、Beanを識別するために使用します。 Beanを直接参照する代わりにシンボリック名を使用しているため、プレゼンテーションがアプリケーション・ロジックと分離され、ビューに影響を及ぼすことなくモデルを変更できます。

    マネージドBeanのスコープによって、Beanが格納されるスコープが決まります。 Beanの有効なスコープは次のとおりです。
    • application: Webアプリケーションが実行されている間、Beanが使用可能です。 このスコープは、LDAPディレクトリなどのグローバルなBeanに有用です。

    • session: クライアント・セッションの間、クライアントがBeanを使用できます。

    • request: インスタンス化されてからクライアントに応答が返されるまで、Beanが使用可能です。 これは通常、現在のページの存続期間です。

    • none: Beanは参照されるたびにインスタンス化されます。 これは、Beanが別のBean内で参照されている場合に有用です。

    次のスコープは、ADFアプリケーションのみで使用可能です。
    • backingBeanScope: これは、HTTPリクエストが出されてからレスポンスがクライアントに返されるまでの時間です。 ページ上に複数のページ断片や宣言的コンポーネントが存在する場合は、ページ断片や宣言的コンポーネントに関連付けられたマネージドBeanに対してこのスコープを使用します。 衝突を避けるため、すべての値は別々のスコープ・インスタンスに保持する必要があります。

    • pageFlowScope: ADFバウンド・タスク・フロー内のアクティビティ間でデータを受け渡すためのメモリ・スコープです。 このスコープでは、ADFバウンド・タスク・フローの各インスタンスに対応する一意なストレージ領域が定義されます。 その存続期間はADFバウンド・タスク・フローに準じ、requestスコープよりも長く、sessionスコープよりも短くなります。

    • viewScope: このスコープが指定されている場合、JDeveloperはユーザーがページとの対話を継続する限り、使用されるオブジェクトをページに保持します。 ユーザーがページの使用を終了すると、それらのオブジェクトは自動的に解放されます。

    backingBeanScopepageFlowScope、およびviewScopeは標準のJSFスコープではありません。 Beanを参照するには、EL式に明示的にスコープを含める必要があります。 たとえば、backingBeanScopeを使用してTheBeanというマネージドBeanを参照する場合の式は、#{backingBeanScope.TheBean}となります。

    XMLエディタで表示すると、構成ファイルのマネージドBeanの登録は次のようになります。
    <managed-bean>
      <managed-bean-name>myBean</managed-bean-name>
      <managed-bean-class>MyBean</managed-bean-class>
      <managed-bean-scope>request</managed-bean-scope>
    </managed-bean>
  9. Edit Propertyダイアログで、Methodドロップダウン・リストの横にある「New」をクリックしてCreate Methodダイアログを開きます。

    Edit Propertyダイアログ、マネージドBean

  10. Method NameフィールドにmyMethodと入力して、「OK」をクリックします。

    Edit Propertyダイアログの表示は次のようになります。

    Edit Propertyダイアログ

  11. OK」をクリックして、Edit Propertyダイアログを閉じます。

    プロパティ・インスペクタのMethod1フィールドに、式#{myBean.myMethod}が表示されます。

  12. アプリケーション・ナビゲータで「MyBean.java」をダブルクリックしてファイルを開きます (すでにファイルを開いている場合は、エディタ・ウィンドウの最上部にある「MyBean.java」ドキュメント・タブをクリックすると、ソース・エディタが前面に表示されます)

  13. 生成されたメソッド内に、"Hello World"というテキストを出力するためのコードを追加します。

    例として、太字で表示したサンプル・コードをコピーして貼り付けます。

  14. エディタ・ウィンドウで「MyPage.jsf」ドキュメント・タブをクリックして、ビジュアル・エディタを前面に表示します。

  15. コンポーネント・パレットのドロップダウン・リストから「ADF Faces」を選択します。 Menus and Toolbarsパネルから「menuMenuをドラッグし、ビジュアル・エディタまたはStructureウィンドウのmoreMenusファセットにドロップします。

  16. 通常、af:group内のメニュー・コンポーネントをグループ化することにより、メニュー間でセパレータを使用できます。 次に例を示します。 詳細を表示/非表示非表示
    <af:menuBar>
      <af:menu text="A"/>
      <af:menu text="B"/> 
      <af:group>
        <af:menu text="C"/>
        <af:menu text="D"/>
      </af:group>
    </af:menuBar>
    実行時に、メニューは次のように表示され、BとCの間にセパレータ・ラインが表示されます。

    A B | C D

    ただし、次のようにmoreMenusファセット内でグループを使用すると、セパレータ・ラインは表示されません。
    <f:facet name="moreMenus">
      <af:group>
        <af:menu text="C"/>
        <af:menu text="D"/>
      </af:group>
    </f:facet> 
  17. プロパティ・インスペクタのCommonセクションでTextの値としてEditと入力し、[Enter]を押します。

  18. コンポーネント・パレットで、追加したばかりのメニュー・コンポーネントに「menu itemMenu Itemをドラッグ・アンド・ドロップします。 プロパティ・インスペクタのCommonセクションで、Textの値としてCutと入力します。

  19. 別の「menu itemMenu ItemをStructureウィンドウのaf:menu - Edit要素にドラッグ・アンド・ドロップします。 プロパティ・インスペクタのCommonセクションで、2番目のメニュー項目のTextの値としてCopyと入力し、[Enter]を押します。

    ビジュアル・エディタには次のようなページが表示されます。

    ビジュアル・エディタ、完成したページ
  20. XMLエディタに切り替えると、JDeveloperによって追加された宣言的コンポーネントのコードが表示されます。 詳細を表示/非表示非表示
    <mc:myMenubar menuLabel="Hello" method1="#{myBean.myMethod}"..>
      <f:facet name="moreMenus">
        <af:menu text="Edit"..>
          <af:commandMenuItem text="Cut"../>
          <af:commandMenuItem text="Copy.."/>
        </af:menu>
      </f:facet>
    </mc:myMenubar>
  21. エディタ・ウィンドウで、「adfc-config.xml」ドキュメント・タブをクリックして、ページ・フロー・ダイアグラムを前面に表示します。 ダイアグラムで、「MyPage」ページ・アイコンを右クリックして、「Run」を選択します。

    Create Default Domainダイアログが表示されたら、PasswordフィールドとConfirm Passwordフィールドにデフォルト・パスワード(例:weblogic1)を入力し、「OK」をクリックします。

    次のようなページがブラウザに表示されます。

    ブラウザ、ページの実行
  22. デフォルトでJDeveloperは、IDEにバンドルされたOracle WebLogic Serverのユーザー固有のインスタンスを参照する、Integrated WebLogic Serverという名前の統合サーバーを自動的に構成します。 詳細を表示/非表示非表示

    Integrated WebLogic Serverは、パッケージ化されたアーカイブ・デプロイメント用のJava EEランタイム・サービスです。 ゼロコピー・デプロイメントに基づき、Integrated WebLogic Serverでは、アプリケーションとそのプロジェクトのJava EEアプリケーションとしての実行とテストをJava EEコンテナ内で行えます。 Integrated WebLogic Serverの使用に際し、特別な接続設定は必要ありません。 アプリケーション全体、プロジェクト、または個別のJSFページを実行できます。

    IDEでJSFアプリケーションを実行すると、次の処理が自動的に実行されます。
    • まだ実行中でない場合は、Integrated WebLogic Serverを起動します。

    • アプリケーションをコンパイルしてIntegrated WebLogic Serverにデプロイします。

    • 次のデフォルトのアドレスを使用して、デフォルトのブラウザ内でアプリケーションを起動します。 http://<your_machine_IP_address>:<http_port>/<your_application_name>-<your_project_name>-context-root>/faces/<path_to_the_page>

    アプリケーションを終了する場合は、JDeveloperで「TerminateTerminateをクリックし、ドロップダウン・メニューからアプリケーション・バウンド・インスタンス「MyWebApp」を選択します。

    注: アプリケーションを終了すると、アプリケーションは停止し、Integrated WebLogic Serverからアンデプロイされますが、Integrated WebLogic Serverは終了されません。
  23. ブラウザ内のページで「Edit」メニューと「File」メニューをクリックして、メニュー項目を表示します。

    Editメニューは、次のように表示されます。

    ブラウザ、Editメニュー
  24. Editメニューは、宣言的コンポーネント定義には指定されていません。 詳細を表示/非表示非表示 Editメニュー・コンポーネントと2つのコマンド・メニュー項目コンポーネント(CutおよびCopy)は、宣言的コンポーネントのmoreMenusファセットに追加されています。
  25. File」メニューから「Hello」を選択します。

    ブラウザ、Fileメニュー
  26. JDeveloperのLogウィンドウに次のテキストが表示されます。 詳細を表示/非表示非表示

    !!! Hello World !!!

    FileメニューとDeleteメニュー項目は、menuLabel属性およびmethod1メソッドとともに、宣言的コンポーネントの定義内に指定されています。 Helloレベルの追加とテキスト出力メソッドの関連付けは、ページ設計時の宣言的コンポーネントの編集で行われました。
まとめ
このチュートリアルでは、ADF宣言的コンポーネントを定義し、これをJSFページで使用しました。 このチュートリアルで学習した内容は、以下のとおりです。 Oracle ADF Facesの使用について、詳しくは以下を参照してください。

ブックマーク 印刷 すべて表示 | すべて非表示
トップへ戻る

このページはお役に立ちましたか。



Copyright © 2011, Oracle and/or its affiliates. All rights reserved.