0

ユーザーの支払いの詳細を支払いゲートウェイ パートナーに送信する必要がある状況があります。

このために、渡されるパラメーターとして非表示の値を持つ別の非 JSF フォームがあります。

<form id="hiddenForm" action="#{checkoutBean.payuAction}" method="post" name="payuForm">

                        <p:outputPanel id="hiddenPanel">
                        <h:inputHidden id="hash" value="#{checkoutBean.hash}"/>
                        <h:inputHidden id="txnid" value="#{checkoutBean.txnid}"/>

                        <h:inputHidden id="amount" value="#{checkoutBean.totoalAmount}"/>
                        <h:inputHidden id="firstname" value="#{checkoutBean.firstname}"/>
                        <h:inputHidden id="email" value="#{checkoutBean.email}"/>
                        <h:inputHidden id="phone" value="#{checkoutBean.phone}"/>
                        <h:inputHidden id="productinfo" value="#{checkoutBean.productInfo}"/>
                        <h:inputHidden id="surl" value="#{checkoutBean.sURL}" />
                        <h:inputHidden id="furl" value="#{checkoutBean.fURL}"/>
                        </p:outputPanel>
    </form>

上記の非表示の値は、ウィザード (primefaces) の最後のステップで ajax を使用して生成されます。ajax 呼び出しが発生していますが、非 JSF フォームを更新できません。値はヌルです。

<p:commandButton value="Confirm" actionListener="#{checkoutBean.initPayu}" onsuccess="submitPayuForm()" update=":hiddenForm:hiddenPanel" />

上のボタンは<h:form>.

JSF コンポーネントから非 JSF コンポーネントを更新することはできないと思います。しかし、私はこのシナリオに取り組む方法を理解できません。

この問題にどのように取り組むことができるかについてのアイデアはありますか?

使用: JSF 2、Primefaces 3.3

事前に感謝します。

4

1 に答える 1

1

フォームはJSFコンポーネントではないため、そのIDをJSFコンポーネントのIDに追加する必要はありません(:hiddenForm:hiddenPanel)。

言い換えれば、次のようなことを試してください。

<p:commandButton ... update="hiddenPanel" />
于 2012-11-07T08:10:10.030 に答える