0

豊富な顔ライブラリでjsf 1.2を使用しています

私はこのようなフォームを持っています:

<a4j:form>

    <!-- lof of other components here -->
    <h:panelGrid>

        <h:inputText id="someOrg" value="#{someBean.Data}">
        <a4j:commandButton id=""action="${someOtherBean.processData}" value="Submit"> <!-- it can be a4j:commandButton too-->
    </h:panelGrid>


    <!-- some components will be rendered based on above submission -->

</a4j:form>

上記のフォームに示すように、ボタンを使用して ajax で h:inputText をサーバーに送信します。内部の PART のみを処理する必要があります。

私の質問は、someOtherBean.processData メソッドから ajax.How を使用して someBean.Data にアクセスしたいということです。

私は次のことを試みましたが、成功しませんでした。

1) 4j:commandButton を使用し、 ajaxSingle="true" を使用します。これは、特定の部分のみを送信する必要があるためです (フォーム全体を送信すると、検証エラーがスローされます)。

2) a4j:support で h:commandButton を使用

3) 必要なコンポーネントを 内に囲みます。これを使用すると、選択した領域のみがサーバーに送信されます。

上記のすべてのケースで、フォームは送信されますが、someBean.Data は常に null を返します。

4

1 に答える 1

1

Bean1 がリクエスト スコープの場合、その Bean の現在のインスタンスを取得できます。

Bean1 bean =(Bean1) FacesContext.getCurrentInstance().getExternalContext().getRequestMap().get("bean1");

Bean がセッションスコープの場合

Bean1 bean = (Bean1) FacesContext.getCurrentInstance().getExternalContext()
            .getSessionMap().get("bean1");

上記のコードをprocessDataメソッドに書くことができます

マネージド Bean 間の通信の詳細については、このリンクを参照してください

于 2013-05-14T06:19:05.443 に答える