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タグ・ライブラリを登録します。
-
JSF1.0 Reference ImplementationをSunのサイトからダウンロードします。適当なディレクトリ(以後、
D:\JSF とします)へこのファイルを解凍します。解凍後のディレクトリには次のサブディレクトリが含まれます:
docs、javadocs、lib、metadata、renderkitdocs、samples、tlddocs
libディレクトリには、JSFが機能するために必要なJarファイルおよびtld(タグ・ライブラリ・ディスクリプタ)ファイルが含まれます。
- JSFに必要なJarファイルを管理するために、JDeveloper内に「JSF」ライブラリを登録します。
- メニューから
ツール→
ライブラリの管理 を選択します。
- 「ライブラリ」タブを選択します。
-
System Libraries
ノードを選択して、「新規」をクリックします。
- 「ライブラリ名」として「JSF」と入力します。
- 「クラスパス」に対して「編集」をクリックします。ダウンロードしたJSFの
libディレクトリに含まれるすべてのJarファイル(jsf-api.jar、 jsf-impl.jar、commons*.jar)をここに加えます。

- 次に、JDeveloperにJSFのJSPタグ・ライブラリを登録して、コンポーネント・パレットにそれらを加えます。
- メニューから
ツール→
ライブラリの管理 を選択します。
- 「JSPライブラリ」タブを選択し、「新規」をクリックします。
- JSF Core タグ・ライブラリを追加し、次のように設定します:
- TLDファイル: D:\JSF\jsf-1_0\lib\jsf_core.tld(参照ボタンを使用してファイルを指定できます)
- Libraries: JSF (参照ボタンを使用して、前の手順で作成した「JSF」ライブラリを選択します)

- URI: http://java.sun.com/jsf/core (自動で設定されます)
- 接頭辞: f(自動で設定されます)
- 「Execute Tags in JSP Visual Editor」チェックボックスを未チェックにしたままで「OK」をクリックします。

- コンポーネント・パレットへのタグ・ライブラリの追加の確認ダイアログで
Yes を選択します。
- パレット・ページ名を"JSF Core"と指定します(コンボボックス上で名前を指定できます)。

- 同様の作業を繰り返して以下の内容で"JSF HTML "タグ・ライブラリを作成します:
- メニューから
ツール→
ライブラリの管理 を選択します。「JSPタグ・ライブラリ」タブを選び、「新規」をクリックします。
- TLDファイル: D:\JSF\jsf-1_0\lib\html_basic.tld
- Libraries: JSF (参照ボタンを使用して、前と同じ「JSF」ライブラリを選択します)
- URI: http://java.sun.com/jsf/html
- 接頭辞: h
- 「Execute Tags in JSP Visual Editor」チェックボックスを未チェックにしたままで「OK」をクリックします。
- コンポーネント・パレットへのタグ・ライブラリの追加の確認ダイアログで
Yes を選択し、パレット・ページ名を"
JSF HTML
"と指定します。
注:「Execute Tags in JSP Visual Editor」チェックボックスを未チェックにしたままにすることは、エディタ上でのJSF UIコンポーネントのビジュアル表示をオフにすることを意味します。つまり、この状態の場合、JSPビジュアル・エディタの中では、JSFタグは単にアイコンとして表示されます。このようにビジュアル表示されない(アイコン表示の)設定の状態でJSF UIコンポーネントを使用し始めても、その後、アプリケーションがある程度構成された段階で、全体像を把握するために両方のJSFタグ・ライブラリのビジュアル化オプションをオンに変更することは容易です。
- 以上で完了です。これで、JSFを利用するためにJDeveloper 10gは構成されました。次のステップはJSFを使用できるようにプロジェクトを構成することです。
JSFを利用するためのプロジェクトの構成
JSFアプリケーションを構築し始めるために、プロジェクトのweb.xmlを構成する必要があります。また、初期的なfaces-config.xmlファイルを用意する必要があります。
- まず最初に、空のプロジェクトを含むアプリケーション・ワークスペースを準備します:
- メニューから
ファイル→新規を選択し、
General →Application を選びます。
- アプリケーション・ワークスペース作成のためのダイアログでは、「jsf_app」のようなわかりやすい名前を指定します。ディレクトリ名とアプリケーション・パッケージ接頭辞はデフォルトの設定をそのまま受け入れてかまいません。
- アプリケーション・テンプレートとして、ここでは、
No Templete [All Technologies] を選びます。
- OKをクリックします。
- 「Project」という名前の空のプロジェクトを含む、新しいアプリケーション・ワークスペースが生成されます。このプロジェクトはそのまま使用してもかまいませんし、よりわかりやすく名前を変更することもできます(メニューから
ファイル→名前の変更)。
- プロジェクト内に、新しいJSPを作成します。
- メニューから
ファイル→新規を選択し、
Web Tier→JavaServer Pages(JSP)→JSPページ を選択します。
- 「hellojsf.jsp」という名前で作成します。これによって、JSPファイルの作成と同時にプロジェクトの
WEB-INFディレクトリにweb.xmlファイルも生成されます。
- アプリケーション・ナビゲータで、
web.xmlファイルを選択し、それを編集するためにダブルクリックします。

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>
でもかまいません。
- 次に
web.xmlと同じディレクトリ位置に faces-config.xmlファイルを作成します。手順は以下のとおりです:
- 新規でシンプル・ファイルを作成します(メニューから
ファイル→新規、
General→Simple Files→File)。
- ファイルに
faces-config.xml という名前を指定します。参照ボタンを使用してプロジェクトの
WEB-INFディレクトリ位置に作成されるように設定します。
- 新規に作成された
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>
|
- これで完了です。プロジェクトはJSFのために構成されました。今後の再利用のために、このプロジェクトのコピーを保存しておくとよいかもしれません。
ゼロから始めるシンプルJSFアプリケーションの作成
JSFのために構成されたプロジェクトを使用して、シンプルなテストJSFアプリケーションを作成し、その構成をテストしてみましょう。
- 先ほど作成した「hellojsf.jsp」をJSPビジュアル・エディタで開きます。
- 「JSF Core」ページにコンポーネント・パレットを切り替えます。

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

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

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

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

- これで、JDeveloper をつかって最初のJSFアプリケーションを構築できました。
WARファイルからの既存のJSFアプリケーションのインポート
もう一つの(JDeveloper でJSF開発で始める際に)有用な方法は、JDeveloperの中にJSFのサンプル・アプリケーションを取り込むことです。これはJDeveloperの、WARファイルからのプロジェクトの作成機能を使用することで可能です。
それでは、JDeveloperの中に JSFの自動車デモ・アプリケーションを開き、それをビジュアルに編集する方法を学び、次に、JDeveloperからそれを実行してみましょう。
- 「WARファイルからのプロジェクト作成」ウィザードを起動します。
- メニューから
ファイル→新規、
General→Projects→既存のWAR(war)ファイルからのプロジェクトを選択します。
- ウィザードのステップ1で、プロジェクト名に「MyCarDemo」を指定します。必要に応じてディレクトリの位置を変更できます。
- ステップ2では、自動車デモ・サンプルを含むWARファイル(
jsf-cardemo.war)を指定します。JSFサンプル・アプリケーションは、通常、<jsf_home>/samplesサブディレクトリに用意されています(D:\JSF\jsf-1_0\samples )

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

ビジュアル・エディタの中で、JSFタグがアイコンの状態で表現されていることがわかります。
- ここで、ページがより直感的に確認できるように、ビジュアル・エディタ内でタグを実行させるオプションを設定してみましょう。
- ライブラリの管理ツール(メニューから
ツール→
ライブラリの管理)を起動し、「JSPライブラリ」タブを選択します。
- Facesの「JSF Core」タグ・ライブラリ("
f")を選択します。
- 「Execute Tags in JSP Visual Editor」チェックボックスをチェックします。
- 「OK」をクリックする前に、もう一つのJSFタグ・ライブラリ("
h")を選択して、同じチェックボックスをチェックします。

- ここで「OK」をクリックします。
- ビジュアル・エディタをリフレッシュします。
ボタンをクリックしてください。
- ページは次のように表現されているはずです。

JDeveloperからのJSF自動車デモの実行
- JDeveloperからJSF自動車デモを実行するためには、このサンプルに含まれる2つの課題を解決する必要があります:
- このサンプルには、追加のセキュリティ制約設定が行われています。この設定を
web.xml から削除します。
- このサンプルは、J2EE 1.4 版の
jstl.jar、 standard.jarファイルで構成されています。これにより、JDeveloperに組み込みのJ2EEエンジン(J2EE 1.3準拠) 上での実行時コンパイルで不整合によるエラーが発生します。これを回避するために、該当するJarファイルを削除します。こうすると、JDeveloperに元々用意されているjstl.jarおよびstardard.jar ファイルが使用されるようになります。
- セキュリティ制約を削除します。
WEB-INF/web.xmlを編集し、以下のタグを削除してください。
<security-constraint>...</security-constraint>
- J2EE 1.4版の
jstl.jarおよびstardard.jarファイルを削除します。これは、単にWindowsのエクスプローラを開いて、該当するファイルをアプリケーションのWEB-INF/libディレクトリから削除するだけです。
- すべて保存(
)およびプロジェクトのメイク(
)を行います。
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 拡張機能を有効にするためには、以下の手順をとってください。
- プロジェクトから
faces-config.xml を一旦削除する(メニューから
ファイル→
WEB-INFから削除)
- JDeveloper を再起動する
- プロジェクトに
faces-config.xml を追加する(メニューから
ファイル→
開く)
Faces Console 拡張機能を導入した後に作成・追加された faces-config.xml に対しては、上記手順を行う必要はありません。
最後に
このように、9.0.5 リリースでは、JSFの開発を効果的に行うことができます。さらに今後のリリースで、より強力かつ生産的なJSF開発機能が予定されています。JDeveloper による JSF開発に関する情報やTipsに今後もご期待ください。
- 本書はOracle Corporation発行の「How to use JSF with JDeveloper 10g」の翻訳版です。
- この文書はあくまでも参考資料であり、掲載されている情報は予告なしに変更されることがあります。 万一、誤植などにお気づきの場合は、オラクル社までお知らせください。オラクル社は本書の内容に関していかなる保証もしません。また、本書の内容に関連したいかなる損害についても責任を負いかねます。