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>

上面的隐藏值是在向导的最后一步使用 ajax 生成的(primefaces)。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 组件 ( :hiddenForm:hiddenPanel) 的 id 上。

换句话说,尝试这样的事情:

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