Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/jsf/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jsf 动态包含的页面表单在第一次单击时提交失败,但第二次单击确定吗?_Jsf_Jsf 2.2 - Fatal编程技术网

Jsf 动态包含的页面表单在第一次单击时提交失败,但第二次单击确定吗?

Jsf 动态包含的页面表单在第一次单击时提交失败,但第二次单击确定吗?,jsf,jsf-2.2,Jsf,Jsf 2.2,我想动态地将一个xhtml页面包含到另一个页面中。 我从一个组合中选择要包含的页面,该组合列出了我可以包含的不同页面, 其中包含的页面将由AJAX显示在一个面板中 包含的页面包含一个 如果我提交:第一次只执行阶段1和6。 如果我第二次提交:一切正常,并被视为一篇包含所有阶段的帖子。 为什么? 我已经解释过这是JSF2.0/2.1中的一个“正常”错误 但是我在这里使用JSF2.2.7和Tomcat7(没有cdi) 怎么了 INFO IN pour /m-page-include-v1/proces

我想动态地将一个xhtml页面包含到另一个页面中。 我从一个组合中选择要包含的页面,该组合列出了我可以包含的不同页面, 其中包含的页面将由AJAX显示在一个面板中

包含的页面包含一个 如果我提交:第一次只执行阶段1和6。 如果我第二次提交:一切正常,并被视为一篇包含所有阶段的帖子。 为什么?

我已经解释过这是JSF2.0/2.1中的一个“正常”错误 但是我在这里使用JSF2.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“主页面”:


包含页面:

<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>

正如@Ganji所说,第7点是我的问题

你可以找到解决办法

在这个链接中还描述了我认为最简单的解决方案:包括@BalusC Omnifaces>1.7。我试过1.8.1版 刚刚在我的“主页”上添加了以下内容,它就像一个符咒

<h:body>
<!-- should be placed inside h:body  -->
<h:outputScript library="omnifaces" name="fixviewstate.js" target="head" />


我希望此链接能够帮助您了解第7点可能与您有关。您是对的,甘吉,第7点似乎适用。在2.0中检测到的带有解决方案的bug不应该在2.2中得到纠正,这是多么遗憾啊!
<h:body>
<!-- should be placed inside h:body  -->
<h:outputScript library="omnifaces" name="fixviewstate.js" target="head" />