JSF에서 아약스에 대해 의심하고 있습니다.malformedXML : 업데이트 중 : adminUsersForm을 찾을 수 없습니다.
내 XHTML은 다음과 같습니다
<h:body>
<h:form id="menuForm">
<h:outputLabel for="menu">Available actions: </h:outputLabel>
<h:selectOneMenu id="menu" value="#{menu.mainMenuItem}">
<f:selectItem itemLabel="Select an option..." itemValue="null" />
<f:selectItems value="#{menu.mainMenuItems}" />
<f:ajax render=":menuForm :adminUsersForm :loadInfoForm :viewFilesForm" />
<!-- <f:ajax render="@all" /> -->
</h:selectOneMenu>
</h:form>
<h:form id="adminUsersForm"
rendered="#{menu.mainMenuItem == 'Admin users.'}">
<h:commandButton value="Button 1" />
</h:form>
<h:form id="loadInfoForm"
rendered="#{menu.mainMenuItem == 'Load info.'}">
<h:commandButton value="Button 2" />
</h:form>
<h:form id="viewFilesForm"
rendered="#{menu.mainMenuItem == 'View files.'}">
<h:commandButton value="Button 3" />
</h:form>
</h:body>
내가 <f:ajax render=":menuForm :adminUsersForm :loadInfoForm :viewFilesForm" />
을 사용하면 내가 올바른 <h:form>
렌더링됩니다 <f:ajax render="@all" />
를 사용할 때 내가 다른 한편으로는 malformedXML의 오류가 발생합니다.
여기에 무슨 일이 일어나고 있습니까? 우리는 컴포넌트를 렌더링 할 수있는 ajax를 사용하여 을 같은 양식으로 렌더링 할 수 있지만 :componentID
을 사용하면 ajax- 컴포넌트를 폼 외부에서 렌더링 할 수 있다는 것을 알았습니다.
미리 감사드립니다. 어쩌면 기본 질문이지만 JSF에 익숙하지 않고 배우려고 노력하고 있습니다.
좋습니다. ' '과' '?? 두 번째 옵션은 항상 상위 구성 요소가없는 경우에도 작동했기 때문입니다. 단지 명확한 개념을 원합니다. 고맙습니다 –
BRabbit27
주요 차이점은 전송 된 데이터입니다. 양식 외부에 많은 다른 내용이있는 경우'@ all '은 불필요한 데이터를 전송하므로 응답 크기가 커져서 속도가 느려집니다. 또한,'@ all'은 답안의 마지막 단락에서 설명한 것과 같은 문제가 있습니다. 여러분은 여전히'render'에서 형식 ID를 명시 적으로 지정할 필요가 있습니다. – BalusC
@BalusC이 답변을 주셔서 감사합니다, 나는 그 문제가 무엇인지 이해했습니다. –