我想动态地将xhtml页面包含到另一个页面中。 我从一个组合中选择要包含的页面,列出我可以包含的不同页面, 并且包含的页面由AJAX在面板中显示。
包含的页面包含一个 如果我提交它:第一次只执行第1和第6阶段。 如果我第二次提交:一切正常,并被视为具有所有阶段的POST。 为什么?
我已经解释过这是JSF 2.0 / 2.1中的“正常”错误 但我在这里使用JSF 2.2.7和Tomcat7(没有cdi)
有什么问题?
INFO IN pour /m-page-include-v1/process.faces ¤¤¤¤¤ POST
INFO AJAX BEFORE RESTORE_VIEW 1 for viewId=null
INFO AJAX AFTER RESTORE_VIEW 1 for viewId=/process.xhtml
INFO AJAX BEFORE RENDER_RESPONSE 6 for viewId=/process.xhtml
INFO AJAX AFTER RENDER_RESPONSE 6 for viewId=/process.xhtml
INFO IN pour /m-page-include-v1/process.faces ¤¤¤¤¤ POST
INFO AJAX BEFORE RESTORE_VIEW 1 for viewId=null
INFO AJAX AFTER RESTORE_VIEW 1 for viewId=/process.xhtml
INFO AJAX BEFORE APPLY_REQUEST_VALUES 2 for viewId=/process.xhtml
INFO AJAX AFTER APPLY_REQUEST_VALUES 2 for viewId=/process.xhtml
INFO AJAX BEFORE PROCESS_VALIDATIONS 3 for viewId=/process.xhtml
INFO AJAX AFTER PROCESS_VALIDATIONS 3 for viewId=/process.xhtml
INFO AJAX BEFORE RENDER_RESPONSE 6 for viewId=/process.xhtml
INFO AJAX AFTER RENDER_RESPONSE 6 for viewId=/process.xhtml
process.xhtml“主要”页面:
<h:form id="chooseForm">
<h:panelGrid columns="2">
<h:outputLabel value="Choose your page to include" />
<h:selectOneMenu id="pageList" value="#{anyPageBean.page}">
<f:selectItems value="#{anyPageBean.pageList}" var="w" itemValue="#{w}" itemLabel="#{w}" />
<f:ajax event="change" execute="@form" render=":panelForDynaPage :globalMessages" />
</h:selectOneMenu>
</h:panelGrid>
</h:form>
<h:panelGroup id="panelForDynaPage">
<ui:include id="includeContenu" src="#{anyPageBean.page}" />
</h:panelGroup>
包含页面:
<ui:composition xmlns="http://www.w3.org/1999/xhtml" xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:f="http://java.sun.com/jsf/core" xmlns:h="http://java.sun.com/jsf/html">
<h:form id="userForm">
<h:messages styleClass="messages" id="messages" />
<h:panelGrid columns="2">
<h:outputLabel value="#{i18n.name}" />
<h:panelGroup>
<h:inputText id="name" value="#{userForm.name}" label="#{i18n.name}" />
</h:panelGroup>
</h:panelGrid>
<h:commandButton actionListener="#{userAction.checkListener()}" value="ok" id="check">
<f:ajax execute="@form" render="@form" />
</h:commandButton>
</h:form>
</ui:composition>