我有一种情况,我想将用户的付款详细信息提交给我的支付网关合作伙伴。
为此,我有一个单独的非 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
提前致谢。