URL 매개 변수로 id를 사용하는 페이지가 있는데이 페이지를 사용하여 객체를 가져 와서 데이터를 표시합니다. 이 페이지에는 파일 업로드 구성 요소가 포함 된 모달이 있으므로 저장을 처리하는 데 아약스를 사용할 수 없습니다. 대신 우리는 이렇게 :<h : commandButton>을 클릭하면 url 매개 변수가 유지됩니다.
<rich:modalPanel domElementAttachment="parent" id="profilePanel" styleClass="popUp" resizeable="false" moveable="false" autosized="true" zindex="200" top="-10">
<a4j:form enctype="multipart/form-data" id="profilePanelFormId">
<q:box title="Edit Advocacy Profile" width="width6x" wantFocus="true">
<s:div id="profilePanelForm">
<rich:messages rendered="#{messagesUtil.errorsExist}"/>
<a4j:include viewId="/panel/advocacy/advocateProfileEdit.xhtml"/>
</s:div>
<h:commandButton id="cancel" immediate="true" value="Cancel" action="#{advocateManager.cancelEditCommitment}" styleClass="button cancel" tabindex="100"/>
<h:commandButton id="save" value="Save" action="#{advocateManager.saveCommitment}" styleClass="submit" tabindex="101"/>
</q:box>
</a4j:form>
</rich:modalPanel>
우리는과 같이 pages.xml에서 매개 변수를 채울 :
<page view-id="/advocacy/advocateCommitmentView.xhtml" login-required="true">
<param name="confirmationCode" value="#{advocateManager.commitmentId}"/>
</page>
를 지금까지 너무 좋아. 우리가 실행하고있는 문제는 사용자가 필요한 id 매개 변수없이 url을 다시 작성하거나 취소 할 때 발생합니다. 그런 다음 사용자가 페이지를 새로 고치면이 키가 없기 때문에 오류가 발생합니다. 아무도 아약스를 사용하지 않고 내 저장 메서드를 호출 할 수 있고 여전히 url 매개 변수를 유지하거나 호출을 가로 채고 매개 변수를 다시 추가하는 방법을 알고 있습니까?