JavaServer Faces および ODC ツールのリリース情報

© Copyright International Business Machines Corporation 2006. All rights reserved.

リリース情報

1.0 制限
   1.1 Faces Client コンポーネントおよびクライアント・データは推奨されない
   1.2 V7 より前の JSF アプリケーションのマイグレーション
   1.3 WDO から SDO への移動時のツリー変更
   1.4 hx:commandExButton でイメージが適切にレンダリングされるようになった
2.0 既知の問題と回避方法
   2.1 jspPanel タグ属性 style および styleClass は使用できなくなった
   2.2 プロジェクトのインポート中に誤った警告ダイアログが表示される
   2.3 1 ページあたりの複数のクライアント・データ・モデル
   2.4 V7.0+ でクライアント・データを使用するポートレットのビルド
   2.5 高さがパーセントで指定されるタブ・パネル
   2.6 strict モードでのタブ・パネル・タブ
   2.7 hx:convertDateTime がアラビア語カレンダーで正常に機能しない
   2.8 WebSphere ランタイムがターゲットの場合、WebSphere プロジェクト・ファセットを確実に選択する
   2.9 loose.dtd および幅がパーセントで指定される列の使用時に JWL DataTable 列が正しく位置合わせされない
   2.10 hx:panelDialog で、位置決めに使用するベース・タグがスクロールされる場合、「相対的な」位置決めが機能しないことがある
   2.11 行選択が使用可能なデータ・テーブルを AJAX 対応のパネルに配置できない
   2.12 ターゲット・ページのパネル ID が ソース・ページのパネル ID に一致しない場合、IE で ajaxExternalRequest が正しく機能しないことがある
   2.13 hx:ajaxRefreshRequest およびその他の AJAX タグの inProgresss 属性が機能しない
   2.14 hxinputHelperTypeahead で、スペース文字、パーセント記号、およびアンパーサンドが含まれる値の検索を正しく処理できない
   2.15 Firefox バージョン 1.5.0.8 以降で hx:panelDialog が正しく配置されない場合がある
   2.16 styleClass が「pagerDeluxe」ではない場合、hx:pagerDeluxe が正しくレンダリングされない

1.0 制限

1.1 Faces Client コンポーネントおよびクライアント・データは推奨されない

以下のものは非推奨となりました。使用は推奨できません。

ツリー <odc:tree> および図表 <odc:graphDraw> は、サーバー・データを使用するために使用可能になっています。

1.2 V7 より前の JSF アプリケーションのマイグレーション

JSF JARS をマイグレーションしないで V7 より前の JSF アプリケーションをインポートし、アプリケーションの開発を続行する場合、V7 での新しいタグはプロジェクト JAR 内にインクルードされず、実行時に使用可能になりません。 必ず V7 より前の JARS をマイグレーションしてください。

1.3 WDO から SDO への移動時のツリー変更

ツリー・コントロール <odc:treeNodeAttr> タグでは、WDO データを SDO データにバインドする場合、className 属性に対して異なる値が使用されます。WDO を使用するサーバー (WebSphere® Application Server 5.1 など) から SDO を使用するサーバー (WebSphere Application Server 6.1 など) へプロジェクトをマイグレーションした後、これを修正する最も簡単な方法は、すべてのツリー・コントロールを削除して再作成することです。 

1.4 hx:commandExButton でイメージが適切にレンダリングされるようになった

v6.0 では、<hx:commandExButton> にタイプ Submit が設定されていて、 ラベルおよび単一の背景イメージのみがある場合 (例えば、value="submit" image="button.gif")、 イメージのみ (イメージとラベルではなく) がレンダリングされていました。この問題は v7.0 で修正されます。この修正によって、ラベルと単一の背景イメージの両方を持つボタンは、v6.0 の使用時と v7.0 の使用時では、レンダリングの方法が異なることになります。

同様に、<hx:commandExButton> にタイプ Reset が設定されていて、 単一の背景イメージ (または背景イメージとラベル) がある場合、イメージのみレンダリングされ、ボタンは実行ボタンとして処理されていました (ボタンのタイプは無視されました)。この問題は v7.0 で修正されます。この修正によって、タイプが Reset に設定されているボタンでは、ページの実行ではなく、ページがリセットされるようになりました。

2.0 既知の問題と回避方法

2.1 jspPanel タグ属性 style および styleClass は使用できなくなった

<jspPanel> タグ属性 style および styleClass は、使用できなくなりました。これらの属性は、JSP パネル・コンポーネントのレンダリングには使用されません。

この製品の前のバージョンで作成された JSF アプリケーションをインポートする場合、<jspPanel> タグはエラーを表示します。このエラーを解決するには、「ソース」ビュー内の JSP ソースを編集して、style および styleClass 属性をプロジェクト内の <jspPanel> タグから除去します。

2.2 プロジェクトのインポート中に誤った警告ダイアログが表示される

製品の旧バージョンを使用して作成したワークスペースに プロジェクトをインポートした場合、Faces サポートはインストール済みであるが、プロジェクトに対してターゲット・ランタイムが選択されていないことを示す ポップアップ・ダイアログが表示される場合があります。多くの場合、この警告は不正確であり、マイグレーション・プロセスが完了した後、ランタイムは適切に定義されます。ランタイムが設定されているかどうかを確認するには、 「プロジェクト」>「プロパティー」を右クリックして、「ターゲット・ランタイム」を選択します。定義されたサーバーの横にチェック・ボックスが表示された場合には、他に必要なアクションはありません。表示されない場合は、サーバーの 1 つを選択します。

2.3 1 ページあたりの複数のクライアント・データ・モデル

注: この回避方法は、クライアント・データ・モデルが 同一のページ・データ・ノードまたは同一の名前のページ・データ・ノードから作成される場合には必要ありません。

v7.0 では、1 ページに同一の Bean クラスから作成される複数のクライアント・データ・モデルがある場合、生成 (または再生成) 時に 2 番目のモデルに対して 2 番目の ecore ファイルおよび emap ファイルが誤って作成されます。マイグレーション・ガイドに従うと、 クライアント・データ・プロジェクトをマイグレーションする場合、クライアント・データ・モデルを再生成する必要があり、 これにより、複数のクライアント・データ・モデルを含むページのマイグレーション済みプロジェクトに影響が出ることがあります。簡単なシナリオを以下に示します。

  1. java.util.Date Bean に基づく 2 つのページ・データ、例えば、myDate1myDate2 を作成します。
  2. 各ページ・データに対して、同一の名前のクライアント・データ・モデルを順番に作成します。すなわち、myDate1 を作成し、次に myDate2 を作成します。

回避方法: 1 ページで両方のモデルを機能させるには、com.ibm.dynwdo4jsmediators パッケージから myDate2.ecoremyDate2.emap を削除し、OdysseyBrowserFramework.properties ファイル内の該当する項目も削除します。

2.4 V7.0+ でクライアント・データを使用するポートレットのビルド

クライアント・データでは 1 ページに大量の JavaScript が出力されます。前のリリースでは、JavaScript はエンコードされませんでした。つまり、同一のページ・データ・ソースを使用して、複数のポートレットでクライアント・データを使用した場合、ページへの JavaScript 出力は、すべてのポートレットに対して同一になりました。

2 つのポートレットをクライアント・データにバインドするこの振る舞いは、同一のクライアント・データ・オブジェクトにバインドされる (JavaScript の 2 番目のセクションによって最初のセクションが上書きされる) ように見えます。これにより、2 つのポートレットが相互作用し、一方への変更が両方へ反映されます。

これは、クライアント・データを使用する複数のポートレットを 1 ページで個別に機能させる場合には問題になります。同一のページに、異なるページ・データ・ソースのクライアント・データを使用する 2 つのポートレットがある場合、JavaScript エラーが発生します。これによって、いずれかのポートレットがレンダリングされない場合もあります。

これらの問題を解決し、クライアント・データ・ポートレットを WSRP 上で実行できるようにするには、クライアント・データ JavaScript 変数をエンコードして、 ポートレットごとに変数を固有にする必要があります。これによって、クライアント・データ JavaScript セクションが個別に機能するようになります。

V7.0 では、すべてのクライアント・データがエンコードされます。

ページ上のポートレット間でクライアント・データを共用する場合、web.xml の以下のコンテキスト・パラメーターを更新する必要があります。

    <context-param>
        <param-name>com.ibm.faces.ENCODE_DATA</param-name>
        <param-value>false</param-value>
        <description></description>
    </context-param>

<param-value> を false に設定することによって、クライアント・データ・エンコードが除去されます。

Encode_Data パラメーターの使用、およびページ・データを使用する図表およびデータ・ツリー・コンポーネントに対する効果

図表およびデータ・ツリーでは、XML データ・オブジェクトをページに配置することによってページ・データを使用します。図表およびデータ・ツリーのページ・データは、 これらのコンポーネントのクライアント・データと密接にリンクしています。デフォルトでは、このデータはエンコードされます。 web.xml ファイルの <context-param> を以下のように設定する場合 (通常、クライアント・データ・エンコードの除去に使用します)、 図表およびデータ・ツリーのページ・データ・エンコードも除去されます。ページ・データを使用するその他のコンポーネントには影響しません。ページ・データをエンコードしないままにすると、1 ページに 2 つのポートレットが存在することになり、両方とも図表かデータ・ツリーを含むため、問題が発生する場合があります。これらのエラーには、JavaScript エラー、および片方のポートレットが正しく表示されないというエラーが含まれます。

クライアント・データと同様に、このデータをエンコードして、ページ上の 2 つのポートレットを個別に実行できるようにし、WSRP サポートを使用可能にするには、 以下の <context-param> を web.xml から除去するか、または <param-value> を true に設定します。

    <context-param>
        <param-name>com.ibm.faces.ENCODE_DATA</param-name>
        <param-value>true</param-value>
        <description></description>
    </context-param> 

2.5 高さがパーセントで指定されるタブ・パネル

ページの先頭には、以下のような記述があります。

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

これによって、Web ブラウザーは standards モードになります。standards モードでは、HTML および body 要素は、quirks モード (デフォルト HTML モード) で実行されるようにウィンドウに入力されるのではなく、コンテンツに厳密に合うように配置されます。

タブ・パネルが自動的に高さをパーセントで指定されてページに表示される場合、ペインの高さに表示の問題が発生します。

この問題を修正するには、高さ設定のあるコンテナー内にタブ・パネルを配置するか、ページ先頭の doctype を以下のように変更します。

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

2.6 strict モードでのタブ・パネル・タブ

doctype が以下のように設定されている場合、standards モードではタブの表示に関する問題が発生します。

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

この問題を解決するには、doctype を以下のように変更します。

     <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

2.7 hx:convertDateTime がアラビア語カレンダーで正常に機能しない

カレンダー・タイプがアラビア語に設定されている場合、<hx:convertDateTime> タグでは 正常な JavaScript が生成されません。結果として、クライアント・サイドの妥当性検査、入力プロンプト、日付ピッカー・ヘルパー、 および小型カレンダーが正常に機能しません。生成された JavaScript が初期化されるときに、 エラーが表示されます (またはコンポーネントが正常に機能しません)。

回避方法: クライアント・サイドの妥当性検査またはプロンプトをオンにしないでください。 コンバーターを使用してアラビア語カレンダーが使用されている場合、日付ピッカー・ヘルパーをオンにしないでください。

2.8 WebSphere® ランタイムがターゲットの場合、WebSphere プロジェクト・ファセットを確実に選択する

WebSphere® サーバー・ランタイムがターゲットである場合、Web プロジェクトに対して WebSphere Web (共存) プロジェクト・ファセットを確実に選択します。 

回避方法: プロジェクトの作成時に動的 Web プロジェクト・ウィザードの 2 ページ目でファセットを選択するか、 またはプロジェクトが既に存在する場合は、プロジェクトの「プロパティー」ダイアログの「プロジェクト・ファセット」ページからファセットを選択します。 WebSphere サーバーがターゲットである Web プロジェクトを作成するとき、プロジェクト・ウィザードの最初のページで「構成」ドロップダウン・リストから 「Faces プロジェクト」または「XDoclet 付き動的 Web プロジェクト」を選択した場合、WebSphere Web (共存) ファセットは自動的には選択されません。 ウィザードの次ページへ進み、このファセットを選択することができます。「構成」リストから <カスタム> を選択すると、WebSphere ランタイムをターゲットにしたときにファセットが正しく選択されます。

2.9 loose.dtd および幅がパーセントで指定される列の使用時に JWL DataTable 列が正しく位置合わせされない

<hx:dataTableEx> 内で <hx:columnEx> を使用して、垂直スクロールが使用可能である (scrollSize が設定されている) ときに、テーブル内の 1 つ以上の列の幅がパーセントで指定されていて、ページの doctype が W3C 標準仕様 (W3C 過渡期仕様ではなく) のブラウザーで解釈される場合、レンダリングされるテーブルで、列ヘッダーと列内容が相互に位置合わせされないことがあります。例えば、doctype に loose.dtd 宣言が含まれている場合にこの問題が発生します。
回避方法: 列幅を固定値 (パーセント・ベースではなく) で指定するか、 または doctype が transitional doctype に解決されるようにします (例えば、loose.dtd 宣言を除去します)。

2.10 hx:panelDialog で、位置決めに使用するベース・タグがスクロールされる場合、「相対的な」位置決めが機能しないことがある

<hx:panelDialog> で、位置決め (水平方向または垂直方向) が relative に設定されており、 位置決めのベースとして使用されるタグ (ダイアログがこのタグに相対して表示される) が、スクロール対象のページにあり、タグは表示され、ページは先頭までスクロールされないようにする場合、ダイアログを表示すると、 正しい位置に表示されないことがあります (通常、先頭または左端よりかなり離れた位置に表示されます)。

回避方法: 相対的位置付けが必要な場合、ベース・タグをページの先頭付近に置くようにします。または、その他のタイプの位置決めを使用します。

2.11 行選択が使用可能なデータ・テーブルを AJAX 対応のパネルに配置できない

データ・テーブル (<h:dataTable> または <hx:dataTableEx>) が AJAX 対応のパネルにあり、 行選択が使用可能 (<hx:inputRowSelect> がテーブルに含まれている) である場合、テーブルが AJAX によって再取り出されるときに、選択列のチェック・ボックスが正しく機能しません。 最初にレンダリングされるとき (だけ) 正しく作動します。

回避方法: 現在のところ、この問題の回避方法はありません。AJAX 対応パネルにテーブルを配置しないでください。

2.12 ターゲット・ページのパネル ID が ソース・ページのパネル ID に一致しない場合、IE で ajaxExternalRequest が正しく機能しないことがある

ターゲット・ページで検索されるパネルの ID の指定に使用するソース属性が、ソース・ページで <hx:ajaxExternalRequest> が接続されるパネル ID と 異なる場合、<hx:ajaxExternalRequest> は Internet Explorer (IE) で正しく機能しないことがあります。例えば、<hx:panel id="panel1"><hx:ajaxExternalRequest  source="panel999" /><hx:panel> です。この問題は、IE でのみ発生し、 ターゲット・パネルがグリッド、ボックス、またはレイアウト (HTML 表としてレンダリングされるパネル) である場合にのみ発生します。

回避方法: ID を同じにするか、ターゲット・パネルを panelGroup でラップします。

2.13 hx:ajaxRefreshRequest およびその他の AJAX タグの inProgresss 属性が機能しない

<hx:ajaxRefreshRequest><hx:ajaxRefreshSubmit><hx:ajaxExternalRequest>、 および <hx:inputHelperTypeahead>inProgresss 属性は機能しません。この属性に値を設定しても効果はありません。将来のリリースでの互換性を確保するため、値は設定しないでください。

2.14 hxinputHelperTypeahead で、 スペース文字、パーセント記号、およびアンパーサンドが含まれる値の検索を正しく処理できない

<hx:inputHelperTypeahead> が入力フィールドに付加されている場合、スペース文字、および/またはアンパーサンドやパーセントなどの句読文字をフィールドに入力すると、 これらの文字を含む「一致」は、構成される候補リストに表示されません。 例えば、ユーザーが % を入力した場合、使用する「辞書」に % で始まるワードがあっても一致するワードは返されません。

2.15 Firefox バージョン 1.5.0.8 以降で hx:panelDialog が正しく配置されない場合がある

Firefox バージョン 1.5.0.8 で開始された一部の HTML DOM 属性の振る舞いを変更すると、Firefox のレンダリング時に panelDialog が正しく配置されない場合があります。通常、この問題は、ダイアログが相対配置である場合に発生しますが、 本文コンテンツのサイズがブラウザー・ウィンドウの高さ「より小さい」場合 (つまり、ページが垂直方向にスクロールしない場合) にも発生することがあります。

回避方法: 本文にコンテンツ (例えば、高さ設定での <div> などの空白文字も含む) を追加して、 垂直スクロール・バーが常時、ページに表示されるようにすると、問題を回避できます (ただし、ブラウザー・ウィンドウとコンテンツの正確な大きさに依存します)。

2.16 styleClass が「pagerDeluxe」ではない場合、hx:pagerDeluxe が正しくレンダリングされない

styleClass がデフォルト・クラスの pagerDeluxe 以外に設定されている場合、<hx:pagerDeluxe> は、正しい HTML マークアップをレンダリングしません。ページャーのボタンは常に、 デフォルトのクラス名を使用するクラス名を使用してレンダリングされます。

回避方法: