Reference
ご覧のページは、お客様の利便性のために一部機械翻訳されています。また、ドキュメントは頻繁に更新が加えられており、翻訳は未完成の部分が含まれることをご了承ください。最新情報は都度公開されておりますため、必ず英語版をご参照ください。翻訳に問題がある場合は、 こちら までご連絡ください。

Liferay Faces Bridge

Liferay Faces Bridgeを使用すると、ポートレット固有のコードを記述することなく、JSF Webアプリケーションをポートレットとしてデプロイできます。 また、ポートレットアプリケーション内でJSF 2.xをサポートする機能も含まれています。

Liferay Faces Bridgeは、.jarファイルで配布されます。 Liferay Faces Bridgeをポートレットプロジェクトの依存関係として追加することで、JSF WebアプリケーションをJSR 286(ポートレット2.0)およびJSR 362(ポートレット3.0)に準拠したポートレットコンテナ内にポートレットとしてデプロイできます。

Liferay Faces Bridge のソースは GitHub で入手できます。

Liferay Faces Bridgeを完全に理解するには、最初にポートレットブリッジ規格を理解する必要があります。 Portlet 1.0とJSF 1.0の仕様は基本的に同時に作成されていたため、JSF仕様のExpert Group(EG)は、ポートレットに準拠するようにJSFフレームワークを構築しました。 例えば、 ExternalContext.getRequest() メソッドは、 オブジェクト を、 javax.servlet.http.HttpServletRequest の代わりに返します。 このメソッドがポータルで使用される場合、 オブジェクトjavax.portlet.PortletRequest にキャストできます。 JSFの設計においてEGはポートレットの互換性を意識していましたが、ポートレットとJSFのライフサイクルのギャップを埋める必要がありました。

2004年以降、JSF開発者がJSF Webアプリをポートレットとしてデプロイできるようにするために、いくつかの異なるJSFポートレットブリッジの実装が開発されました。 2006年、JCPは標準ブリッジAPIとブリッジ実装の詳細な要件を定義するためにPortlet Bridge 1.0(JSR 301)EGを設立しました。 JSR 301は、Portlet 1.0およびJSF 1.2を対象として2010年にリリースされました。

2008 年に Portlet 2.0 (JSR 286) 標準がリリースされたとき、JCP は Portlet Bridge 2.0 (JSR 329) EG を策定する必要が生じました。 また、JSR

  1. がPortlet 2.0とJSF 1.2を対象として2010年にリリースされました。

JSR 314 EG が 2009 年に JSF 2.0 を、2010 年に JSF 2.1 をリリースした後、Portlet Bridge 3.0 標準が有益であることが明らかになりました。 2015年にJCPは JSR 378を策定し、Portlet 3.0とJSF 2.2のブリッジを定義しました。 Portlet 2.0およびJSF 1.2/2.1/2.2をサポートするLiferay Faces Bridgeのバリアントもあります。

JSFポートレットブリッジは、JSFライフサイクルの正しいフェーズをポートレットライフサイクルの各フェーズに合わせます。 たとえば、ブラウザがJSFポートレットを含むポータルページにHTTP GETリクエストを送信する場合、RENDER_PHASEはポートレットのライフサイクルで実行されます。 次に、JSFポートレットブリッジは、JSFライフサイクルのRESTORE_VIEWフェーズとRENDER_RESPONSEフェーズを開始します。 同様に、HTTP POSTがポートレットで実行され、ポートレットがACTION_PHASEに入ると、完全なJSFライフサイクルがブリッジによって開始されます。

ポートレットライフサイクルのどのフェーズが実行されているかに応じて、JSFライフサイクルのさまざまなフェーズが実行されます。

2つのライフサイクルが正しく接続されていることを確認するだけでなく、JSFポートレットブリッジは、ポータルURLジェネレータとJSFナビゲーションルールの間のメディエーターとしても機能します。 JSFポートレットブリッジは、ポータルによって作成されたURLがJSFナビゲーションルールに準拠していることを確認し、JSFポートレットが別のビューに切り替えることができるようにします。

JSR 329/378 規格では、 javax.portlet.faces 名前空間で始まるいくつかの構成オプションが定義されています。 Liferay Faces Bridgeは、com.liferay.faces.bridgeネームスペースのプレフィックスが付いた追加の実装固有のオプションを定義します。

Liferay Faces Bridgeは、Liferay DXPのJSF開発プロセスにおいて不可欠な要素です。