Faces ポートレットとプロジェクトの作成

Faces ポートレット・プロジェクトは、いくつかの相違点はありますが、標準ポートレットおよび Faces プロジェクトと共通の特性を共有します。

Faces ポートレット・プロジェクトは、プロジェクトのベースにするポートレット API に基づいて、「新規ポートレット・プロジェクト」ウィザードまたは「新規ポートレット・プロジェクト (JSR 168)」ウィザードを使用して作成されます。デフォルトの Faces ポートレットは、プロジェクトの作成プロセスで追加されます。このウィザードにより、Faces ポートレット構成ファイル、必須のディレクトリー構造、および web.xml ファイルに対する必要なアップデートが、自動的に生成されます。

Faces ポートレット API によって定義される次のタイプのリソースが、プロジェクト内に組み込まれます。
リソース・タイプ ファイル ターゲット・ディレクトリー 注記
JAR すべての必須 Faces *.jar ファイル WEB-INF/lib  
構成ファイル faces-config.xml WEB-INF 次のものを含みます。
  • FacesContextFactory のポートレット・バージョン
  • ポートレット API オブジェクトの変数リゾルバー
デプロイメント記述子
  • web.xml
  • portlet.xml
WEB-INF

標準の web.xml ファイルが以下のように変更されます。

  • サーブレット com.ibm.faces.webapp.JSResourceServlet が追加されます。
  • servlet および servlet-mapping タグは、 他のポートレットと競合しないようにするために固有の ID をサフィックスとして付けた、ストリング値を持つ ID 属性を持ちます。
以下の情報が portlet.xml に組み込まれています。
  • ポートレット・モード構成が組み込まれています。
  • Faces ポートレット関連の config-param 値が提供されています。
次のサンプルの構成とデプロイメント記述子ファイルの断片は、Faces ポートレット・プロジェクト内で使用される代表的なタグ付けを示しています。
faces-config.xml
要求処理ライフ・サイクルのそれぞれの標準フェーズごとに、 処理の開始および終了がライフ・サイクル・フェーズ・リスナーに通知されます。 詳しくは、PhaseListener javadoc を参照してください。 また、各フェーズについては、PhaseId javadoc も参照してください。 次のライフ・サイクルのセクションが、Faces 構成ファイルに追加されています。
	<lifecycle>
		<phase-listener>com.ibm.faces.webapp.ValueResourcePhaseListener</phase-listener>
	</lifecycle>
FactoryFinder API には、ファクトリーに関する情報、 および特定ファクトリーへのリンクが記載されています。 次のファクトリー・ファインダー・セクションが、IBM® API ポートレットの Faces 構成ファイルに 追加されています。
	<factory>
		<faces-context-factory>com.ibm.faces.context.WPPortletFacesContextFactoryImpl</faces-context-factory>
	</factory>
JSR 168 API ポートレットの場合は、ファクトリーは次のように 定義されます。
	<factory>
		<faces-context-factory>com.ibm.faces.context.PortletFacesContextFactoryImpl</faces-context-factory>
	</factory>
また、それぞれの API タイプごとに VariableResolver セクションが 追加されています。
<!-- variable/property resolver registration [IBM portlet API] -->
	<application>
		<variable-resolver>com.ibm.faces.databind.SelectItemsVarResolver</variable-resolver>
		<variable-resolver>
		com.ibm.faces.application.WPPortletVariableResolver</variable-resolver>
		<property-resolver>com.ibm.faces.databind.SelectItemsPropResolver</property-resolver>
	</application>
または
<!-- variable/property resolver registration [JSR 168 portlet API] -->
	<application>
		<variable-resolver>com.ibm.faces.databind.SelectItemsVarResolver</variable-resolver>
		<variable-resolver>
		com.ibm.faces.application.PortletVariableResolver</variable-resolver>
		<property-resolver>com.ibm.faces.databind.SelectItemsPropResolver</property-resolver>
	</application>
web.xml
これは、web.xml に追加されたサンプルの Faces ポートレット・サーブレットを示しています。
<servlet id="Faces_Unique_Servlet_Name">
		<servlet-name>faces_portlet.FacesPortletPortlet</servlet-name>
		<display-name>faces_portlet.FacesPortletPortlet</display-name>
		<servlet-class>com.ibm.faces.webapp.WPFacesGenericPortlet</servlet-class>
</servlet>
これは、Faces ポートレット・サーブレットのサーブレット・マッピングの例です。
<servlet-mapping>
      <servlet-name>faces_portlet.FacesPortletPortlet</servlet-name>
      <url-pattern>/faces_portlet.FacesPortletPortlet/*</url-pattern>
</servlet-mapping>
portlet.xml
これは、portlet.xml に定義されている Faces ポートレット・アプリケーションの例です。
<portlet-app-def>
	<portlet-app uid="faces_portlet.FacesPortletPortlet.A_Unique_ID:1" major-version="1" minor-version="0">
		<portlet-app-name>Faces Portlet application</portlet-app-name>
		<portlet id="faces_portlet.FacesPortletPortlet" href="WEB-INF/web.xml#Servlet_A_Unique_ID:2" major-version="1" minor-version="0">
			<portlet-name>Faces Portlet portlet</portlet-name>
			<cache>
				<expires>0</expires>
				<shared>no</shared>
			</cache>
			<allows>
				<maximized />
				<minimized />
			</allows>
			<supports>
				<markup name="html">
					<view />
					<edit />
				</markup>
			</supports>
		</portlet>
	</portlet-app>
	<concrete-portlet-app uid="faces_portlet.FacesPortletPortlet.A_Unique_ID:3">
		<portlet-app-name>Faces Portlet application</portlet-app-name>
		<concrete-portlet href="#faces_portlet.FacesPortletPortlet">
			<portlet-name>Faces Portlet portlet</portlet-name>
			<default-locale>en</default-locale>
			<language locale="en">
				<title>Faces Portlet portlet</title>
				<title-short></title-short>
				<description></description>
				<keywords></keywords>
			</language>
			<config-param>
				<param-name>com.ibm.faces.portlet.page.view</param-name>
				<param-value>/FacesPortletView.jsp</param-value>
			</config-param>
			<config-param>
				<param-name>com.ibm.faces.portlet.page.edit</param-name>
				<param-value>/FacesPortletEdit.jsp</param-value>
			</config-param>
		</concrete-portlet>
	</concrete-portlet-app>
</portlet-app-def>  
関連概念
Faces コンポーネントを使用した動的データ
JavaServer Faces ポートレット・アプリケーション
関連タスク
Faces ポートレット・プロジェクトの作成
Faces ポートレットの作成
既存の IBM ポートレットの Faces ポートレット・モードの追加と更新
既存の JSR 168 ポートレットの Faces ポートレット・モードの追加と更新
Faces ポートレット JSP ファイルの作成
Faces アプリケーションの作成 - 概要
関連資料
Faces コンポーネントの解説
Faces コンポーネントの属性

(C) Copyright IBM Corporation 2000, 2005. All Rights Reserved.
(C) Copyright IBM Japan 2005