2012-10-29 5 views
0

웹 페이지에 JSONP를 통해 값을 가져옵니다. 이제이 값으로 backing-bean-property를 업데이트하고 싶습니다. 어떻게 처리할까요? 미리 감사드립니다.조치 메소드 이전에 JSF 갱신 bean 특성 업데이트

업데이트 : 내 문제는 JavaScript, JSF-Ajax-Calls 및 Webservices가 있으며 어떤 작업이 트리거되었는지 살펴 봐야한다는 것입니다. 내 상황을 좀 더 자세하게 설명해야 겠어.

내 백업 콩 :

logger.debug("CaseController - save(): tempCaseId [ " + tempIshCaseId + "];"); 

내 XHTML 페이지 :

<!-- JSONP-Wert in die Bean hieven --> 
<t:div id="tempIshCaseIdContainer"> 
    <h:outputText id="setTempIshCaseId" value="#{CaseController.tempIshCaseId}" /> 
</t:div> 
<a4j:commandLink id="preSaveCaseButton" onclick="setTempIshCaseId();" title="..." 
    reRender="jsonpRemoteURLs,hNumberRemoteURL,eNumberRemoteURL,ishCaseRemoteURL,tempIshCaseIdContainer" oncomplete="jQuery('a#form_saveCaseButton').click()"> 
</a4j:commandLink> 
<a4j:commandLink id="saveCaseButton" title="..." reRender="serverWarningsParent" action="#{CaseController.save}" onclick="if (validateCaseFormEntries(){ closeCaseWarningsBox(); } else { return false; }" oncomplete="if (#{CaseController.success}){ showCaseModalPanel(); patientConsistencyCheck(#{NavigationController.globalErrorState}, '#{PatientController.patienlistUrl}'); startJsonpSetters(); saveCase(); initializeFocusBlurEvents();} else { return false;}"> 
</a4j:commandLink> 
<a4j:commandLink id="postSaveCaseButton" onclick="hideCaseModalPanel();" reRender="caseContainer,modifiedContainer"> 
</a4j:commandLink> 

내 자바 스크립트 파일 :

function setTempIshCaseId(){// setze den Wert des a4j-value-Elements 
var ishCaseId = jQuery('#form_ish').val(); 
jQuery('#form_setTempIshCaseId').text(ishCaseId); 
} 

내가 페이지 렌더링 후 3 단계를 얻었다. preSaveCaseButton은 모든 JSONP-Url을 업데이트해야합니다. 그렇지 않으면 시스템에서 Token-Timeouts을 생성하고 예외가 발생하기 때문에 필요합니다. saveCaseButton은 bean 액션을 트리거하고 편집 된 setTempIshCaseId가 유효한 경우 데이터베이스에 저장합니다. 요약하면, 나는 단지 preSaveCaseButton이 호출 될 때 bean을 업데이트했을 때, 'process'속성을 사용하려고 시도했음을 알 수있을 것입니다. saveCaseButton이 호출 된 후 바로 bean 값을 확인할 수 있습니다. 불행히도 내 log4j-logging-message는 내 백업 빈이 ''(tempIshCaseId = '') 값을 가지며 업데이트되지 않았 음을 알려줍니다.

알아 두어야 할 사항?

답변

0

해당 값을 사용하여 요청 매개 변수를 보내면됩니다. 양식을 제출하는 방법이 완전히 명확하지는 않지만 다른 사람에게이 양식을 쓸 수 있습니다. <h:inputHidden>.

document.getElementById("form:hidden").value = fetchedValue; 
+0

감사합니다, 내 문제가 더 명확하게하기 위해 몇 가지 코드를 추가 : 다음과 같은 JS 측에서

<h:inputHidden id="hidden" value="#{bean.property}" /> 

, 그냥 가져온 값으로 값을 변경합니다. – Jochen

관련 문제