JDeveloper 10gでのJavaServer Facesの設定

Oracle JDeveloper How To ドキュメント
2004年5月

目次

はじめに

JavaServer Faces(JSF)は、Thinクライアント/HTMLベースのアプリケーションを構築する標準的方法を提供する新しいJavaテクノロジです。JDeveloper では、JSF開発に関するサポート機能を段階的に提供していく予定です。9.0.5 では、JSFコンポーネントを組み込んで、JSPビジュアル・エディタで開発可能になります(本ドキュメントでは、その方法について紹介します)。さらにその後のリリースでは、より強力なJSF対応機能が予定されています。

JDeveloperへのJSFライブラリのインストール

「JSF」ライブラリを作成し、JSFのJSPタグ・ライブラリを登録します。

  1. JSF1.0 Reference ImplementationをSunのサイトからダウンロードします。適当なディレクトリ(以後、D:\JSF とします)へこのファイルを解凍します。解凍後のディレクトリには次のサブディレクトリが含まれます:
        docsjavadocslibmetadatarenderkitdocssamplestlddocs
    libディレクトリには、JSFが機能するために必要なJarファイルおよびtld(タグ・ライブラリ・ディスクリプタ)ファイルが含まれます。

  2. JSFに必要なJarファイルを管理するために、JDeveloper内に「JSF」ライブラリを登録します。
  3. 次に、JDeveloperにJSFのJSPタグ・ライブラリを登録して、コンポーネント・パレットにそれらを加えます。
  4. 同様の作業を繰り返して以下の内容で"JSF HTML "タグ・ライブラリを作成します:
  5. 以上で完了です。これで、JSFを利用するためにJDeveloper 10gは構成されました。次のステップはJSFを使用できるようにプロジェクトを構成することです。


JSFを利用するためのプロジェクトの構成

JSFアプリケーションを構築し始めるために、プロジェクトのweb.xmlを構成する必要があります。また、初期的なfaces-config.xmlファイルを用意する必要があります。

  1. まず最初に、空のプロジェクトを含むアプリケーション・ワークスペースを準備します:
  2. プロジェクト内に、新しいJSPを作成します。
  3. アプリケーション・ナビゲータで、web.xmlファイルを選択し、それを編集するためにダブルクリックします。

  4. web.xml 内の <description> ... </description> の後に次の内容を追加します:
     
    <!-- Faces Servlet -->
    <servlet>
      <servlet-name>Faces Servlet</servlet-name>
      <servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
      <load-on-startup>1</load-on-startup>
    </servlet>
    
    <!-- Faces Servlet Mapping -->
    <servlet-mapping>
      <servlet-name>Faces Servlet</servlet-name>
      <url-pattern>/faces/*</url-pattern>
    </servlet-mapping>
    
    : 実際にはFaces Servletに対してどんなサーブレット・マッピングを使用してもかまいません。例えば
          <url-pattern>*.faces</url-pattern>
    でもかまいません。
     
  5. 次にweb.xmlと同じディレクトリ位置に faces-config.xmlファイルを作成します。手順は以下のとおりです:
    1. 新規でシンプル・ファイルを作成します(メニューから ファイル新規GeneralSimple FilesFile)。
    2. ファイルに faces-config.xml という名前を指定します。参照ボタンを使用してプロジェクトのWEB-INFディレクトリ位置に作成されるように設定します。


    3. 新規に作成された faces-config.xmlファイルに以下の内容をコピーして貼り付けます:
       
      <?xml version="1.0"?>
      <!DOCTYPE faces-config PUBLIC
                "-//Sun Microsystems, Inc.//DTD JavaServer Faces Config 1.0//EN"
                "http://java.sun.com/dtd/web-facesconfig_1_0.dtd">
      <faces-config>
      </faces-config>
      

  6. これで完了です。プロジェクトはJSFのために構成されました。今後の再利用のために、このプロジェクトのコピーを保存しておくとよいかもしれません。

ゼロから始めるシンプルJSFアプリケーションの作成

JSFのために構成されたプロジェクトを使用して、シンプルなテストJSFアプリケーションを作成し、その構成をテストしてみましょう。

  1. 先ほど作成した「hellojsf.jsp」をJSPビジュアル・エディタで開きます。
  2. 「JSF Core」ページにコンポーネント・パレットを切り替えます。

  3. ページ上に「view」タグをドラッグ&ドロップします。「view」タグはすべてのJSFページに必要なものです。
  4. 「JSF HTML」にコンポーネント・パレットを切り替えます。
  5. 先ほど作成した「view」のタグの 内部に「outputText」タグをドラッグ&ドロップします(黒の境界線の中にドラッグ&ドロップします)。

  6. プロパティ・インスペクタで、outputTextタグの value属性に「hello JSF!」と入力します。

  7. ツールバーボタンの「すべて保存」アイコン をクリックして、これまでの作業をすべて保存します。
  8. ページの実行を選択します。これにより、組み込みのJ2EEエンジン(OC4J)が起動されます。

  9. 重要: Faces Servletへのリクエストのためには、ブラウザのURLに「/faces」というサーブレット・マッピングを挿入しなければならないため、ブラウザが自動的に起動された直後はうまく結果が得られません。 この場合、次のように、ブラウザのアドレス部分を変更する必要があります:
        http://yourhost:8988/YourJ2EEContextRoot/faces/hellojsf.jsp
     
  10. 適切なURLが指定されると、「hello JSF!」というメッセージが表示されるページを見ることができるはずです。
  11. これで、JDeveloper をつかって最初のJSFアプリケーションを構築できました。

WARファイルからの既存のJSFアプリケーションのインポート

もう一つの(JDeveloper でJSF開発で始める際に)有用な方法は、JDeveloperの中にJSFのサンプル・アプリケーションを取り込むことです。これはJDeveloperの、WARファイルからのプロジェクトの作成機能を使用することで可能です。

それでは、JDeveloperの中に JSFの自動車デモ・アプリケーションを開き、それをビジュアルに編集する方法を学び、次に、JDeveloperからそれを実行してみましょう。

  1. 「WARファイルからのプロジェクト作成」ウィザードを起動します。
  2. ウィザードのステップ1で、プロジェクト名に「MyCarDemo」を指定します。必要に応じてディレクトリの位置を変更できます。
  3. ステップ2では、自動車デモ・サンプルを含むWARファイル(jsf-cardemo.war)を指定します。JSFサンプル・アプリケーションは、通常、<jsf_home>/samplesサブディレクトリに用意されています(D:\JSF\jsf-1_0\samples


  4. 完了をクリックします。これにより、WARファイルの内容を解凍して新しいプロジェクト・ディレクトリが構成されます。アプリケーション・ナビゲータには、新しいプロジェクトが表示されます。
  5. このプロジェクト内に解凍された様々なファイルを確認してみてください。他の追加のファイルと共にWEB-INFディレクトリに faces-config.xmlを見つけることができます。
  6. storeFront.jspを、JSPビジュアル・エディタの中で開きます。

    ビジュアル・エディタの中で、JSFタグがアイコンの状態で表現されていることがわかります。

  7. ここで、ページがより直感的に確認できるように、ビジュアル・エディタ内でタグを実行させるオプションを設定してみましょう。
  8. ビジュアル・エディタをリフレッシュします。 ボタンをクリックしてください。
  9. ページは次のように表現されているはずです。


JDeveloperからのJSF自動車デモの実行
  1. JDeveloperからJSF自動車デモを実行するためには、このサンプルに含まれる2つの課題を解決する必要があります:
  2. セキュリティ制約を削除します。WEB-INF/web.xmlを編集し、以下のタグを削除してください。
        <security-constraint>...</security-constraint>
  3. J2EE 1.4版のjstl.jarおよびstardard.jarファイルを削除します。これは、単にWindowsのエクスプローラを開いて、該当するファイルをアプリケーションのWEB-INF/libディレクトリから削除するだけです。
  4. すべて保存()およびプロジェクトのメイク()を行います。
  5. index.jspページを実行します。JDeveloperからアプリケーションを実行することができます。
    (index.jspによって、"chooseLocale.faces " のURLに自動転送されます。このサンプルでは *.faces がFaces Servlet にマップされているため、実質はchooseLocale.jsp に転送されます)

Faces Console 拡張機能

JSFの構成ファイルである faces-config.xml の編集のために作成された便利なインターフェースとして Faces Console というものがあります。このツールは JDeveloper のアドインとして機能し、faces-config.xml の編集を専用ダイアログ・エディタから実施できるようになります。

注意:
Faces Console 拡張機能を JDeveloper に組み込む前に、JDeveloper 内で開発中の JSFプロジェクトがある場合、そのプロジェクト内の faces-config.xml に対してFaces Console 拡張機能を有効にするためには、以下の手順をとってください。

  1. プロジェクトから faces-config.xml を一旦削除する(メニューから ファイルWEB-INFから削除
  2. JDeveloper を再起動する
  3. プロジェクトに faces-config.xml を追加する(メニューから ファイル開く

Faces Console 拡張機能を導入した後に作成・追加された faces-config.xml に対しては、上記手順を行う必要はありません。

最後に

このように、9.0.5 リリースでは、JSFの開発を効果的に行うことができます。さらに今後のリリースで、より強力かつ生産的なJSF開発機能が予定されています。JDeveloper による JSF開発に関する情報やTipsに今後もご期待ください。