2012-11-07 6 views
0

사용자의 지불 세부 사항을 지불 게이트웨이 파트너에게 제출한다고 가정합니다.비 JSF 양식 업데이트

이를 위해 전달할 매개 변수로 숨겨진 값이있는 별도의 비 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를 사용하여 생성됩니다. 아약스 호출이 발생하지만 비 JSF 형식을 업데이트 할 수 없습니다. 값은 널입니다.

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

위의 버튼을 지금 내가 그것을 JSF 구성 요소에서 비 JSF 구성 요소를 업데이트 할 수없는 것을 믿는 <h:form>.

입니다. 하지만이 시나리오를 해결하는 방법을 알아낼 수는 없습니다.

이 문제를 어떻게 해결할 수 있습니까?

는 사용 : JSF 2, 3.3

미리 감사드립니다 톤을 Primefaces.

답변

1

양식이 JSF 구성 요소가 아니기 때문에 JSF 구성 요소의 ID (:hiddenForm:hiddenPanel)에 ID를 추가 할 필요가 없습니다. 작동하지 않는

<p:commandButton ... update="hiddenPanel" /> 
+0

:

즉,이 같은 것을보십시오. javax.faces.FacesException : "wizForm : j_idt62"에서 참조 된 식별자가 "hiddenPanel"인 구성 요소를 찾을 수 없습니다. – Akshat

+0

JSF 구성 요소가 비 JSF 구성 요소를 업데이트하려고 시도 중입니다 – Akshat

+1

Akshat, 신중하게 읽으십시오 http://stackoverflow.com/questions/8634156/how-to-reference-components-in-jsf-ajax-cannot-find-component-with -identifier/8644762 # 8644762 그런 다음 생성 된 HTML 소스를 살펴보십시오. 나는 당신이 실제로'update = ": hiddenPanel"'을 필요로한다고 생각한다. – BalusC