2

JSF 2.0 と JPA 2.0 の利点を得るために、主なアプリケーションを Seam 2.2 から Seam 2.3beta1 に移行中です。おおむね順調に進んでいます。ただし、JSF 2.0 および Richfaces 4.x での Ajax の変更の一部は、コードの移植に問題があることが判明しています。

他のコンテンツに基づいて設定された一連のコンポーネントがあります。たとえば、最初のメニューはアイテム カテゴリを選択します。値が選択されると、そのカテゴリのサブカテゴリがデータベースから取得され、2 番目のメニューの選択項目として機能します。このプロセス全体が会話範囲です。現在、コードは次のようになっています。

<h:selectOneMenu value="#{newObjAction.category}"
            required="true"
            requiredMessage="You must select a category"
            style="width:300px;">
        <s:selectItems var="cat"
            value="#{newDesignAction.designCategories}" label="#{cat.name}"
            noSelectionLabel="Select a category..."
            hideNoSelectionLabel="true" />
        <s:convertEntity />

        <a:support event="onchange" reRender="subCategoryPanel"
            limitToList="true" ajaxSingle="true" status="subCategoryStatus" />
</h:selectOneMenu>

これは Seam 2.2 と JSF 1.2 で問題なく動作します。ただし、JSF 2.0 から削除されました。私はその代わりにこのようなものを試しました:

<f:ajax listener="#{newObjAction.handleCategoryChange}">

期待どおりにイベントを発生させますが、大きな問題が 1 つあります。それは、会話を伝播していないことです。その結果、リスナー オブジェクトが呼び出される直前に傍受され、ユーザーは定義済みのno-conversation-view-idfromにリダイレクトされpages.xmlます。使用時に会話を伝播する方法はあります<f:ajax />か? これを達成するためのより良い方法はありますか?これはアプリケーションの主要なコンポーネントであるため、この時点で移行全体は停止しています。

助けやアドバイスをいただければ幸いです。

4

0 に答える 0