ウィザードを使用して、アプリケーションとプロジェクト、空白のJSFページを素早く作成します。 簡単なBeanオブジェクトを作成するには、初期JavaBeansクラスを生成してからソース・エディタを使用して、2つのStringプロパティと、getterメソッドおよびsetterメソッドをプロパティに追加します。 また、入力データを保存し、そのデータを使用してコンソール・メッセージを表示するビジネス・メソッドも追加します。
詳細を表示/非表示詳細表示

次に、このJavaクラスをマネージドBeanとしてfaces-config.xmlに登録します。 その後、2つの入力テキスト・フィールドと1つのボタンを使用して簡単なUIを設計し、これらの入力フィールドとボタンをJSF EL式を使用してマネージドBeanにバインドします。 最後に、マネージドBeanに含まれるメソッドとボタンを結びつけ、ボタンがクリックされたらビジネス・メソッドが起動されるようにします。 ページをテスト実行すると、ブラウザ内に次のようなページが表示されます。

ブラウザ、登録フォーム

目的 所要時間 アプリケーション
このチュートリアルでは、簡単なBeanオブジェクトを作成し、このBeanをJSFアプリケーションで使用する方法を説明します。 これから作成するアプリケーションの完成版を確認するには、「Download」ボタンをクリックして最終的なアプリケーションのzipファイルをダウンロードし、JDeveloperのmyworkフォルダに解凍してください。 20分 jsfbeanapp.zipのダウンロード
ステップ1:新規アプリケーションとプロジェクトの作成
  1. メイン・メニューから「File」→「New」を選択します。 New Galleryで、「General」カテゴリを開き、「Applications」を選択します。Itemsリストで「Custom Application」を選択し、「OK」をクリックします。

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

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

    このチュートリアルでは、Custom Applicationテンプレートを使用します。このテンプレートでは、JDeveloperがサポートするすべての機能の関連オブジェクトを1つのプロジェクトから使用できます。

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

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

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

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

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

    アプリケーション・ナビゲータ、Projectsパネル

  6. テンプレートから作成された新規アプリケーションは、プロジェクト階層に分割されてアプリケーション・ナビゲータに表示されます。各プロジェクトには関連する機能が設定されています。 詳細を表示/非表示詳細表示 アプリケーション・ナビゲータでは、プロジェクトは階層内の最上位レベルとして表示されます。アプリケーションで使用したCustom Applicationテンプレートによって、1つのプロジェクトが作成されています。このプロジェクトには、デフォルトのプロジェクト名または事前に入力されたプロジェクト名が指定されています。

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

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

    注:アプリケーション・ナビゲータのイタリック体のノードは、これらの要素が保存されていないことを示しています。 プロジェクトに含まれるファイルが選択されている場合、プロジェクト・ノードは太字で表示されます。

    メイン・メニューから「Application」→「Show Overview」を選択します。 エディタ・ウィンドウ領域にApplication Overviewウィンドウが開きます。

    Application Overviewウィンドウの一部

    Application Overviewのファイル概要ページには、JDeveloper内で作成されるすべてのオブジェクトがオブジェクト・タイプごとに分類されて表示されます。新規作成したファイルとアーチファクトは、ステータスやプロジェクトでフィルタして表示できます。

    このアプリケーションのオブジェクトを作成する際には使用しないので、任意でApplication Overviewウィンドウを閉じることができます。
ステップ2:JSFページの作成
  1. アプリケーション・ナビゲータでプロジェクトを右クリックし、「New」→「Web Tier」→「JSF/Facelets」→「Page」の順に選択して「OK」をクリックします。

    New Gallery、Web Tier

  2. Create JSF Pageダイアログで、ファイル名としてRegister.jsfを入力します。 ドキュメント・タイプとしてFaceletsが選択されていることを確認します。

    Create JSF Pageダイアログ
  3. JavaServer Facesを使用するアプリケーション向けに作成するJSFページには、Faceletsドキュメント(ファイル拡張子は.jsf)、またはXML構文で記述されたJSPドキュメント(ファイル拡張子は.jspx)を使用できます。 詳細を表示/非表示詳細表示

    どちらのJSFページもCreate JSF Pageダイアログを使用して作成できます。次のいずれかの方法でJSFページを開きます。
    • New Gallery

    • JSFナビゲーション・ダイアグラマ

    • Oracle ADFタスク・フロー・ダイアグラマ(JDeveloperのStudio Editionでのみ使用可能)

  4. Page Layoutページで「Blank Page」を選択します。Managed Beanページで、「Do Not Automatically Expose UI Components in a Managed Bean」を選択します。

  5. Create JSF Pageダイアログでは、新しいページのルック・アンド・フィールの一部を任意で定義でき、また、ページ上のコンポーネントをマネージドBeanで公開するかどうかを指定できます。公開するように指定すると、UIコンポーネントをプログラムで操作できるようになります。 詳細を表示/非表示詳細表示

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

    Create JSF Pageダイアログ、Managed Beanタブ

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

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

    ページ作成時に自動コンポーネント・バインディングを使用しないように指定した場合は、プロパティ・インスペクタを使用して手動でページ上のコンポーネントをバインドできます。 たとえば、入力テキスト・コンポーネントを挿入したら、プロパティ・インスペクタで、そのコンポーネントのBindingフィールドの末尾にある「Dropdown Menuアイコン」ドロップダウン・メニューをクリックして「Edit」を選択します。 マネージドBeanが存在しない場合は、Edit Propertyダイアログで続けてそのページ用のマネージドBeanを作成できます。

    プロパティ・インスペクタ、プロパティのバインド、編集
  6. 「OK」をクリックします。

    デフォルトでは、ビジュアル・エディタに新しいJSF Faceletsページが表示されます。

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

  7. エディタ・ウィンドウ上部にある各タブは、ドキュメント・タブです。ドキュメント・タブを選択するとそのファイルにフォーカスが移り、現在のエディタ内ウィンドウの前面にファイルが表示されます。 詳細を表示/非表示詳細表示 特定のファイルをエディタ・ウィンドウで開いたときに表示されるウィンドウ下部の各タブは、Editorタブです。エディタ・タブを選択すると、そのエディタまたはビューア内でファイルが開きます。 たとえば、ビジュアル・エディタからXMLエディタに切り替えるには、「Source」タブをクリックします。

    新規のJSFページをFaceletsドキュメント・タイプ(ファイル拡張子は.jsf)として作成すると、JSF CoreおよびHTMLの各タグ・ライブラリ用の2つのxmlns属性を持つ初期ページ構造が自動的に作成されます。初期ファイルに含まれるその他の要素には、ページのレイアウト用要素、特に<f:view>と</f:view>で囲まれた他のすべての要素が挙げられます。 たとえば、新規ページには次のコードが生成されます。
    <!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:h="http://java.sun.com/jsf/html">
      <html xmlns="http://www.w3.org/1999/xhtml">
        <h:head>
          <title>Register</title>
        </h:head>
        <h:body>
          <h:form></h:form>
        </h:body>
    </html>
    </f:view>
    JSFページの作成ステップが完了すると、アプリケーション・ナビゲータは次のように表示されます。

    アプリケーション・ナビゲータ、JSFページ

    プロジェクト内で、Java EE Webモジュール・ディレクトリ構造に準拠するフォルダとファイルは次のとおりです。
    • Web Contentフォルダ: 作成したページ、およびアプリケーションのクライアント・ブラウザに表示される必要があるその他のファイル(スタイルシート・ファイルや画像など)が格納されます。

    • /WEB-INF/フォルダ:必要なWebアプリケーション・デプロイメント・ディスクリプタ(web.xml)とJSF構成ファイル(faces-config.xml)が格納されます。

    • web.xmlファイル:アプリケーションのWebアプリケーション・デプロイメント・ディスクリプタです。これは、アプリケーションの構成コンポーネントを記述したXMLファイルです。初期化パラメータと、サーバーによって実施されるコンテナ管理のセキュリティ制約も、このファイルに記述されています。

    • faces-config.xmlファイル:バリデータ、コンバータ、マネージドBean、ナビゲーション・ルールといった、JSFアプリケーションの構成リソースが登録されます。

ステップ3:Javaクラスの作成
  1. 先ほど作成したプロジェクトをアプリケーション・ナビゲータで右クリックし、「New」→「General」→「Java Class」の順に選択して「OK」をクリックします。

    New Gallery、Generalカテゴリ項目

  2. Create Java Classダイアログで、クラス名にPersonInfoと入力します。 デフォルト値はそのままにして、「OK」をクリックします。

    Create Java Classダイアログ

  3. ソース・エディタで、コードを追加して簡単なJavaBeansオブジェクトを作成します。

    たとえば、生成された次のコードの後に、

    public PersonInfo() {
      super();
    }


    次のコードを使用して2つのプロパティを追加します。

  4. JSFでは、UIコンポーネントまたはコンポーネント属性値をモデル・レイヤーのデータへバインドすることにより、動的データを送信および表示します。このデータはアプリケーション内のあらゆるJavaBeansで保持することができます。 詳細を表示/非表示詳細表示

    作成しようとしているこの例では、2つのフィールドにデータを入力してボタンをクリックし、メッセージを表示するようユーザーに求めます。 データを取得するには、2つのプロパティを追加し、getterメソッドとsetterメソッドをプロパティに作成する必要があります。 入力データを保存し、そのデータを使用してコンソール・メッセージを表示するメソッドは、後で追加します。
  5. エディタでファイルを右クリックし、「Generate Accessors」を選択します。

    Javaソース・エディタ、Generate Accessors
  6. ソース・エディタで、編集中に使用できる他の機能には次のものがあります。 詳細を表示/非表示詳細表示
    • Javaコード・インサイト、Java固有のコンプリーション・インサイトの実装

    • Fixアイコン一般的な問題を修正するコード・アシスト

    • インポート文の支援およびソート

    • 自動ドキュメント・コメント・テンプレート

    • Structureウィンドウのカスタマイズ可能なソートおよび展開

    • 構文エラーおよびセマンティック・エラーの明確なハイライト

    • カスタマイズ可能なコード・セパレータ

    これらの機能の詳細を参照するには、ソース・エディタで[F1]を押します。
  7. Generate Accessorsダイアログで「PersonInfo」を選択します。 Scopeドロップダウン・リストでpublicが選択されていることを確認し、「OK」をクリックします。

    Generate Accessorsダイアログ

  8. 入力されたデータを取得し、そのデータを使用してメッセージを表示するコードをソース・エディタで追加します。

    たとえば、生成された次のメソッドの後に、

    public String getEmail() {
      return email;
    }


    次のメソッドを追加します。

  9. 「Save Allアイコン」Save Allをクリックして作業内容を保存します。

    アプリケーション・ナビゲータでは、Application Sourcesフォルダの下のproject1パッケージにPersonInfo.javaが表示されます。

    アプリケーション・ナビゲータ、project1パッケージ
  10. Oracle JDeveloperで実際のアプリケーションを開発する場合、有意義かつ効率的にデータを維持できる方法を検討する必要があります。 詳細を表示/非表示詳細表示 データ・モデルに対して単純なJavaBeansを使用するのでは不十分な場合や、さまざまなソースからデータを集計する必要が発生する場合があります。このような場合、たとえば次に示すようにまったく異なったビジネス・サービス・テクノロジーに基づくデータソースを扱うことができます。
    • Oracle ADF Business Components(Oracle JDeveloperのStudio Editionでのみ使用可能)

    • Enterprise JavaBeans(EJB)

    • Oracle TopLink - これによりJavaクラスおよびEJBをデータベース表にマップできます。

    Webサービス - これはバックエンド・ビジネス・サービスを作成する必要がなく、既存のビジネス・サービス(EJBコンポーネント、データベース内のストアド・プロシージャ、またはJavaなどの言語で作成されたその他のビジネス・サービスを含む)を公開する必要がある場合に、上記のビジネス・サービスの代替となります。

    Oracle JDeveloperの生産的なコーディングとデータ・バインディング・ツールを使用すれば、JSFとJavaBeans、Enterprise JavaBeans(EJB)、Oracle TopLink、またはWebサービスをモデル・レイヤーで使用するかどうかにかかわらず、アプリケーション・バックエンドおよび統合コードを安全かつ容易に実装できます。 特定のビジネス・サービスを使用する場合は、New Galleryを開き、用意されているウィザードとダイアログを使用して、モデル・プロジェクト内にエンティティを作成(Webサービスの場合は公開)できます。
ステップ4:マネージドBeanとしてのクラスの登録
  1. アプリケーション・ナビゲータで「faces-config.xml」をダブルクリックし、エディタ・ウィンドウで構成ファイルを開きます。

  2. アプリケーションは、アプリケーション・ページにより表示されるテキストとメッセージを含んだファイルや、アプリケーションが使用するデータを定義するBeanなどの特定のリソースを必要とします。 詳細を表示/非表示詳細表示

    アプリケーションに必要なリソースは、JSF構成ファイルfaces-config.xmlに指定されます。アプリケーションが必要とするリソースは以下のとおりです。

    • マネージドBean

    • カスタム・メッセージ・バンドル

    • カスタム・バリデータとコンバータ

  3. エディタ・ウィンドウの下部にある「Overview」タブをクリックして、概要エディタを使用します。

    概要エディタにはデフォルトでManaged Beansページが表示されます。

    JSF構成ファイルの概要エディタ
  4. マネージドBeanとは、JSF構成ファイルfaces-config.xmlに登録されたアプリケーションによって使用される任意のJavaBeansのことです。 詳細を表示/非表示詳細表示 faces-config.xmlファイルにはいつでもマネージドBeanを追加できます。それには、同ファイル内のXMLを手動で編集する方法と、構成ファイルの概要エディタを使用する方法があります。概要エディタには、各種作成ダイアログと、Beanのクラス・ファイル参照を検索するための参照機能が用意されています。

    faces-config.xmlにマネージドBeanを定義するには、JSF構成ファイルにエントリを追加します。具体的には、Beanを参照する際に使用するシンボリック名と、Beanをインスタンス化するときに使用するクラスを指定します。このシンボリック名は、Beanのプロパティとメソッドを参照する必要がある際、Beanを識別するために使用します。 Beanを直接参照する代わりにシンボリック名を使用しているため、プレゼンテーションがアプリケーション・ロジックと分離され、ビューに影響を及ぼすことなくモデルを変更できます。
  5. 「Addアイコン」をクリックしてCreate Managed Beanダイアログを開きます。Bean名としてpersonDataを入力します。 Class Nameフィールドの横の「Browseアイコン」をクリックし、クラス・ブラウザを開きます。

    Create Managed Beanダイアログ

  6. フィールドにPersonInfoと入力し、「PersonInfo (project1)」を選択します。 「OK」をクリックしてクラス・ブラウザを閉じます。

    クラス・ブラウザ

  7. Create Managed Beanダイアログで「Configuration File」を選択します。 次の値が入力または選択されていることを確認します。

    フィールドまたはオプション 値
    Bean Name PersonData
    Class Name PersonInfo
    Package project1
    Extends java.lang.Object
    スコープ リクエスト
    登録 Configuration File
    Generate Class If It Does Not Exist 選択する
  8. マネージドBeanのスコープによって、Beanが格納されるスコープが決まります。Beanの有効なスコープは次のとおりです。 詳細を表示/非表示詳細表示
    • application:Webアプリケーションが実行されている間、Beanが使用可能です。このスコープは、LDAPディレクトリなどのグローバルなBeanに有用です。

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

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

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

    JSF 2.0では、faces-config.xmlでマネージドBeanを登録するのではなく、BeanクラスでマネージドBeanアノテーションを使用する選択ができるようになりました。 faces-config.xmlファイルはかなりの大きさになることがありますが、マネージドBeanアノテーションを使用するとファイルのサイズと複雑さが減少します。 faces-config.xmlに<managed-bean>要素を追加する代わりにアノテーションを使用すると、アノテーションである@ManagedBeanと@RequestScopeがJavaBeansクラス・ファイルに追加されます。次に例を挙げます。

    @ManagedBean(name="backing_mypage")
    @RequestScoped
    public class MypageInfo {
      ...
    }
  9. 「OK」をクリックします。

    概要エディタに新規のマネージドBean定義が表示されます。

    JSF構成ファイルの概要エディタ、マネージドBean

  10. faces-config.xmlの概要エディタを使用してマネージドBeanを構成すると、faces-config.xmlファイルが自動的に更新され、必要な構成要素が追加されます。 詳細を表示/非表示詳細表示

    次に例を挙げます。

    <managed-bean>
      <managed-bean-name>personData</managed-bean-name>
      <managed-bean-class>project1.PersonInfo</managed-bean-class>
      <managed-bean-scope>request</managed-bean-scope>
    </managed-bean>


    JSFアプリケーションを起動すると、faces-config.xmlが解析されてマネージドBeanが使用可能になります。マネージドBeanが(たとえば、EL式内で値式と呼ばれるコンポーネントのタグ属性の値として)参照されると、マネージドBean作成機能が、そのBeanのデフォルトのコンストラクタ・メソッドを呼び出してBeansをインスタンス化します。 プロパティが宣言されている場合は、それらに宣言済みのデフォルト値が設定されます。
ステップ5:UIの設計
  1. エディタ・ウィンドウの上部にある「Register.jsf」タブを選択し、ページを前面に表示します。

  2. ビジュアル・エディタ内でページを設計する際には、エディタ・ウィンドウ下部(Designエディタ・タブおよびSourceエディタ・タブのすぐ上)のブレッドクラム・リンクを使用して、ページ上で既存のコンポーネントまたはタグを選択します。 詳細を表示/非表示詳細表示

    ビジュアル・エディタ

    エディタのブレッドクラム・リンクは、現在選択されているコンポーネントまたはタブからそのルートの親コンポーネントまたは親タグへさかのぼるリンク・パスを表します。

    エディタのブレッドクラム・リンクに表示されているコンポーネントまたはタグをクリックすると、選択したコンポーネントまたはタグがページ上に表示され、選択したアイテムの右上隅にドロップダウン・メニュー・アイコンが表示されます。このドロップダウン・メニューをクリックすると、Oracle JDeveloperは、選択したコンポーネントまたはタグ上で実行可能な操作をコンテキスト・メニューとして表示します。次に例を挙げます。

    ビジュアル・エディタ、JSFページ

    ビジュアル・エディタはStructureウィンドウとも完全に統合されています。JSFコンポーネントを挿入、コピー、移動する際は、ビジュアル・エディタ内、ターゲット・ページ要素に対するStructureウィンドウ内で、ページ上の挿入ポイントを選択します。Oracle JDeveloperは、ターゲット・コンポーネントの前、後、または内部に、挿入ポイントの場所を示すビジュアル・キューを提供します。

    コンポーネントを挿入したら、コンポーネントをドロップする際に表示されるダイアログを使用し、必要に応じてコンポーネントのプロパティを設定できます。プロパティの設定は、プロパティ・インスペクタを使用して後で行うこともできます。

    アプリケーション・ページでは、Oracle JDeveloperに用意されているスタイルシートまたはユーザー固有のスタイルシートを使用することもできます。スタイルシートは、ページの作成時または作成後に、ページを編集することで追加できます。ページにスタイルシートを追加すると、ページ上のテキスト(見出しテキストなど)に、ドロップダウン・リストから選択したスタイルを設定できます。

    ビジュアル・エディタ・ツールバーのスタイル・ドロップダウン・リスト
  3. ビジュアル・エディタで、ページ上部にテキストRegistration Formを入力します。

    ビジュアル・エディタ
  4. デフォルトでは、ビジュアル・エディタでUIコンポーネントを編集する際に、Oracle JDeveloperはページのリソース・バンドルでテキスト・リソースを自動的に作成しません。 詳細を表示/非表示詳細表示 リソース・バンドルを使用する必要がある場合は、Project PropertiesダイアログのResource Bundleページで、「Automatically Synchronize Bundle」オプションを選択します。デフォルトのバンドル・タイプはProperties Bundleで、これはPropertyResourceBundleプロパティ・ファイルまたは変換可能テキストを含むプレーン・テキスト・ファイルです。 プロパティ・ファイルにはStringオブジェクトに対する値のみを含めることができます。他の種類のオブジェクトを保存する必要がある場合は、代わりにListResourceBundleを使用します。

    Project Properties、Resource Bundle

    Automatically Synchronize Bundleを選択すると、ビジュアル・エディタでテキストを入力して[Enter]を押した後に、テキストがEL式として表示されます。

    ビジュアル・エディタ、EL式

    プロパティ・ファイルも作成されます。次に例を挙げます。

    #
    SOME_TEXT=Some Text
  5. コンポーネント・パレットで、ドロップダウン・リストから「HTML」ページを選択し、「Common」パネルを展開します。

    コンポーネント・パレット内のHTMLコンポーネント
  6. Oracle JDeveloperでは、コンポーネント・パレットを使用して、ビジュアル・エディタ内でJSFページ上にコンポーネントをドラッグ・アンド・ドロップできます。 詳細を表示/非表示詳細表示

    各コンポーネントにはヘルプ情報が備わっており、コンポーネントの目的と属性が説明されています。 ヘルプ情報を検索するには、コンポーネント・パレットのパネル内でアイテムを右クリックし、「Help」を選択します。
  7. 「Tableアイコン」Tableをクリックしてビジュアル・エディタへドラッグし、ページ上にドロップして表を追加します。

  8. Insert Tableダイアログで、行数を3に、列数を2に設定します。 その他はデフォルト値のままにして、「OK」をクリックします。

    Insert Tableダイアログ

  9. コンポーネント・パレットで、ドロップダウン・リストから「JSF」ページを選択し、「HTML」パネルを展開します。

  10. Faceletsでは、XML名前空間の概念を使用してJSFタグ・ライブラリをサポートしています。 JSFコンポーネントが用意されているライブラリは次のとおりです。 詳細を表示/非表示詳細表示
    • JavaServer Faces HTMLタグ・ライブラリ。一般的なHTMLユーザー・インタフェース・コンポーネントを表すタグが含まれます。

    • JavaServer Faces Coreタグ・ライブラリ。イベント処理やデータ変換といったコア・アクションを実行するタグが含まれます。

    コンポーネント・パレット内のJSFコンポーネント
  11. 「Input Textアイコン」Input Textアイコンをドラッグし、表の最初の行の2番目の列にドロップします。

    ビジュアル・エディタ
  12. この例のように、表はデータのレイアウトやWebページ上のテキストおよびグラフィックスの配置だけでなく、ページ・レイアウトの設計に使用できます。 詳細を表示/非表示詳細表示

    Insert Tableダイアログを使用して、HTML <table>要素を追加し、スケルトン表に初期プロパティを設定できます。スケルトン表を挿入した後、コンポーネント・パレットとビジュアル・エディタを使用し、入力フィールドおよびラベルを追加することで登録フォームを設計します。

    ビジュアル・エディタを使用して、表の外観と構造の両方を容易に変更できます。表を編集してテキストおよび画像を追加できます。行および列を追加、削除、サイズ変更、順番の変更、分割、マージすることが可能です。また、表、行、セルの色、位置合わせのプロパティを変更でき、セルをコピーして貼り付けることができます。さらに、表のセル内に表をネストできます。

    ビジュアル・エディタで表の全体または一部を変更するには、最初に表、行、列、あるいはセルを選択します。選択する方法は次のとおりです。
    • 表全体では、表の境界線の右下隅にカーソルを置き、「Table Selectorアイコン」Table Selectorアイコンが表示されたらクリックします。

    • 行では、表の左の境界線にカーソルを置き、「Row Selectorアイコン」Row Selectorアイコンが表示されたらクリックします。

    • 列では、表の上の境界線にカーソルを置き、「Column Selectorアイコン」Column Selectorアイコンが表示されたらクリックします。

    • セルでは、1つのセルをクリックするか、複数のセルであれば[Ctrl]を押しながらクリックします。

    ビジュアル・エディタで表を選択すると、前述したように、青いサイズ指定ハンドルが表の下側と右側、および右下隅に表示されます。

    表のサイズを変更する方法は次のとおりです。
    • 「Resize Handles」Resize Handlesアイコンをドラッグして表のサイズを調整します。

    行または列のサイズを変更する方法は次のとおりです。
    • サイズを変更したい行または列の境界線にカーソルを置き、「Horizontal Border Handleアイコン」Horizontal Border Handleアイコンまたは「Vertical Border Handleアイコン」Vertical Border Handleアイコンが表示されたらクリックします。

    ビジュアル・エディタ・ツールバーを使用して選択した表またはセルのプロパティを設定する方法は次のとおりです。

    ビジュアル・エディタ、ツールバー
    • 「Fillアイコン」Background Colorアイコンをクリックし、表、行、またはセルに選択した色を適用します。

    • 「Leftalignアイコン」Leftアイコン、「Centeralignアイコン」Centerアイコン、「Rightalignアイコン」Rightアイコンをクリックし、選択した表にそれぞれ左揃え、中央揃え、右揃えを適用します。

    • 「Indentアイコン」IndentアイコンまたはOutdentアイコンをクリックして、<blockquote>タグを適用または削除することにより、選択した表にインデントを適用するか、インデントを削除します。

  13. もう一度「Input Textアイコン」Input Textアイコンをドラッグし、2番目の行の2番目の列にドロップします。

  14. 「Command Buttonアイコン」Command Buttonアイコンをドラッグし、3番目の行の2番目の列にドロップします。プロパティ・インスペクタのCommonセクションで、「Value」フィールドをクリックし、デフォルトのテキストをSign Me Upに変更します。

  15. Oracle JDeveloper内で標準のJSFコンポーネントを使用しながら、プロパティ・インスペクタ内でコンポーネント・タグ属性を表示および設定できます。 大部分の標準JSFコンポーネント・タグ属性には、JSF Expression Language(EL)を使用して、値式(#{expression})を指定できます。たとえば、#{personData.username}となります。 詳細を表示/非表示詳細表示

    JSFページにコンポーネントを追加すると、コンポーネント・タグでサポートされている属性が以下のカテゴリに分類されてプロパティ・インスペクタに表示されます。
    • Common: 一般に使用される属性。コンポーネントによって異なります。このカテゴリにはidおよびbinding属性も含まれます。idはコンポーネントの一意な識別子で、有効なXML名でなければなりません。id名の先頭文字に、数字やスペースを使用することはできません。bindingは、コンポーネント・インスタンスをBeanのプロパティにバインドするEL式です。

    • Appearance: 可視パーツを制御する基本属性。titleやaccessKeyなどがあります。

    • Style: HTMLのスタイルおよびプレゼンテーションに関する属性。background、border、cellpadding、cellspacing、font、margin、style、outlineなどがあります。対応したHTML要素に宣言するHTML 4.01仕様の属性のほとんどがサポートされています。

    • Behavior: コンポーネントの動作を制御する基本属性。disabledやreadOnlyなどのHTMLパススルー属性が含まれます。HTML言語の国際化セクションに指定されるlangやdirといった言語変換属性も含まれます。

    • JavaScript: HTMLイベント属性(クライアント側のスクリプトをイベントと関連づける属性)。onclick、onkeypress、onmouseoverなどがあります。

    コンポーネントの属性に関する説明を表示するには、プロパティ・インスペクタ内でプロパティ名またはプロパティ・フィールドを右クリックします。 サイズ変更ができるポップアップ・ウィンドウが表示され、スクロール機能が付いたProperty Helpボックスにプロパティの説明が表示されます。 プロパティ・ポップアップ・ウィンドウは、「Dropdownアイコン」ドロップダウン・メニューをクリックして開くこともできます。

    Property Inspector
  16. ビジュアル・エディタで、表の最初の行と最初の列が交わるセルをクリックしてUsername:と入力します。 続いて、最初の行と2番目の列が交わるセルにEmail:と入力します。

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

    ビジュアル・エディタ、表
ステップ6:マネージドBeanへのUIのバインド
  1. ビジュアル・エディタで、最初の入力テキスト・フィールドを選択します。 次に、プロパティ・インスペクタのCommonセクションで、Valueフィールドの横に表示されているProperty Menuアイコンドロップダウン・メニューから「Expression Builder」を選択します。

    Property Inspector
  2. 前のステップで、2つのプロパティ(usernameとemail)を持つJavaBeansを作成し、マネージドBeanとして登録しました。 詳細を表示/非表示詳細表示 BeanをマネージドBeanとして登録しておくと、BeanはJSFアプリケーションの実行時にオンデマンド(Beanがページから式言語(EL)式を通じて初めてアクセスされたとき)で自動的にインスタンス化されます。したがって、Beanのプロパティ値を表示でき、ページからデータが送信される際に更新することもできます。

    Beanのプロパティはコンポーネント値またはコンポーネント・インスタンスにバインドできます。 この例では、Expression Builderを使用してBeanのプロパティをコンポーネント値にバインドします。
  3. Expression Builderで、「JSF Managed Beans」→「personData」の順で展開します。「username」を選択し、username変数を使用して式を作成します。 「OK」をクリックします。

    Expression Builder
  4. Java EE 5.0およびJSP 2.1で導入された統合式言語(EL)は、JSP 2.0により提供される式言語の集合であり、JSFテクノロジー1.0用に作成された式言語です。 詳細を表示/非表示詳細表示 この統合ELにより、ページの作成者は引き続きEL式を使用して、UIコンポーネント値とオブジェクトをバッキングBeanプロパティにバインドするか、バッキングBeanメソッドをUIコンポーネント・タグから参照できます。

    統合ELには、値式とメソッド式の2種類の式が定義されています。値式により、Beanのプロパティから外部オブジェクト上のデータの取得および設定の両方が可能になり、リスト、マップ、配列、暗黙的オブジェクト、リソース・バンドルを参照できます。メソッド式はコンポーネント・イベントを処理するメソッドか、またはコンポーネント・データを検証あるいは変換するメソッドを参照します。

    値式

    値式の構文は、JSP 2.0式言語で使用される構文に準拠しています。値式の例は、以下のとおりです。
    • #{foo}

    • #{foo.bar}

    • #{foo.bar.baz}

    • #{foo[bar]}

    • #{foo["bar"]}

    • #{foo[3]}

    • #{foo[3].bar}

    • #{foo.bar[3]}

    • #{foo.bar == "Hello World"}

    • #{(foo.bar) / 5 * 3}

    • Offer Valid from #{offer.validFromDate} to {offer.validToDate}

    メソッド式

    メソッド式では以下のパターンのいずれかを使用する必要があります。
    • #{expression.value}

    • #{expression[value]}

    expressionは値式に対して説明済みのEL式のいずれかである可能性があり、valueは式におけるオブジェクトのメソッド名に一致する識別子でなければなりません。

    演算子

    式言語は.および[]演算子に加え、次の演算子を提供します。
    • 算術:+、-(バイナリ)、*、/およびdiv、%およびmod、-(単項)

    • 論理:and、&&、or、||、not、!

    • 関係: ==、eq、!=、ne、<、lt、>、gt、<=、ge、>=、le。比較は別の値か、またはブール、文字列、整数、および浮動小数点リテラルに対して行うことができます。

    • Empty:empty演算子は値がnullまたは空白であるかどうかを判断するのに使用できる前置演算子です。

    • 条件:A ?B :C。Aの評価結果に基づいて、BまたはCを評価します。

  5. 2番目の入力テキスト・フィールドでこの手順を繰り返しますが、今回はExpression Builderで「email」変数を選択します。

  6. ビジュアル・エディタで「Command」ボタンをダブルクリックし、Bind Action Propertyダイアログを開きます。 Managed Beanドロップダウン・リストから「personData」を選択します。

    Bind Action Propertyダイアログ
  7. 先ほど、Expression Builderを使用して、入力テキスト・コンポーネントのvalue属性をBeanのプロパティにバインドするためのEL式を作成しました。 コマンド・ボタン・コンポーネントはJavaBeansのメソッドにバインドできます。 詳細を表示/非表示詳細表示

    Bind Action Propertyダイアログを使用すると、次にJavaBeansに作成する新しいメソッドにボタンのaction属性をバインドできます。
  8. ダイアログの値はデフォルトのままにして、「OK」をクリックします。

    エディタ・ウィンドウにJavaクラス・ファイルが表示され、コマンド・ボタン・コンポーネントをバインドしたときに追加されたコードが表示されます。

    ボタンをバインドした後のソース・エディタ
  9. Register.jsfページのビジュアル・エディタで、「Source」をクリックしてXMLエディタに切り替えると、詳細を表示/非表示詳細表示 入力テキストとコマンド・ボタン・コンポーネントのコードに値とメソッドのEL式が表示されます。次に例を挙げます。
    <h:inputText value="#{personData.username}"/>
    <h:inputText value="#{personData.email}"/>
    <h:commandButton action="#{personData.commandButton_action}".../>
ステップ7:コードの完成とJSFページの実行
  1. 必要に応じて、エディタ・ウィンドウで「PersonInfo.java」タブを選択し、ソース・エディタを前面に表示します。

  2. 先ほどBeanに追加したビジネス・メソッドsaveInfoを呼び出すコードを、生成されたアクション・メソッドに追加します。

    saveInfoメソッドは2つのパラメータをとり、データをコンソールに書き込みます。 たとえば、生成されたコードに含まれる次のコメント行の後に、

    // Add event code here...

    太字で示した次のコードを挿入します。

  3. アプリケーション・ナビゲータで「Register.jsf」を右クリックし、「Run」を選択します。

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

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

    ブラウザのRegisterページ

  4. デフォルトで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>

      以下に例を示します。 http://127.0.0.1:7101/JSFBeanApp-Project1-context-root/faces/Register.jsf

    入力フィールドにユーザー名と電子メール・アドレスを入力し、ボタンをクリックします。

    ブラウザのRegisterページ

    すると、入力したデータがOracle JDeveloperのLogウィンドウに書き込まれます。 たとえば、guestとguest@oracle.comを入力すると、Logウィンドウの下部に次のメッセージが表示されます。

    saving...guest guest@oracle.com

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

    注: アプリケーションを終了すると、アプリケーションは停止し、Integrated WebLogic Serverからアンデプロイされますが、Integrated WebLogic Serverは終了されません。
まとめ
このチュートリアルでは、JSFデータ・バインディングを使用する簡単なアプリケーションを作成しました。このチュートリアルで学習した内容は、以下のとおりです。 JSF Webアプリケーションの開発の詳細については、下記を参照してください。

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

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



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