Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/neo4j/3.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 postAddToView事件侦听器方法?_Jsf - Fatal编程技术网

为什么在回发调用期间调用JSF postAddToView事件侦听器方法?

为什么在回发调用期间调用JSF postAddToView事件侦听器方法?,jsf,Jsf,我在下面的组件中添加了postAddtoView事件侦听器。我在等那场比赛 在创建初始视图期间,将调用orderView.populateForm侦听器方法一次( ). 对于恢复视图的任何回发调用,我不希望视图中添加新的组件实例。因此,不会发生火灾事件 但是,每次回发调用都会调用事件侦听器方法 <h:form id="orderForm"> <p:panelGrid id="attributePanel" columns="#{orderView.

我在下面的组件中添加了postAddtoView事件侦听器。我在等那场比赛 在创建初始视图期间,将调用orderView.populateForm侦听器方法一次( ). 对于恢复视图的任何回发调用,我不希望视图中添加新的组件实例。因此,不会发生火灾事件

但是,每次回发调用都会调用事件侦听器方法

      <h:form id="orderForm">
        <p:panelGrid id="attributePanel" columns="#{orderView.numberOfGridColumns}">
            <f:event type="postAddToView" listener="#{orderView.populateForm}" />
        </p:panelGrid>

        <p:commandButton  ajax="true" value="Create" process="@form" update="@form"/>
    </h:form>

OrderView是一个视图范围的CDIBean。据我所知,视图范围的bean存储在部分视图状态中,并且默认情况下启用了部分视图状态保存。(BalusC在这里对这个问题给出了很好的解释)为了看到它的效果,我禁用/启用了部分状态保存。这没有帮助

提前谢谢。
PS:我正在运行Mojarra 2.2.12/Glassfish 4.1

以下哪一项对理解和回答您的问题最有帮助?就这点而言,组件实例根本不存储在视图状态中。我认为这非常有用。即使是回发调用,我也不知道“将生成JSF组件树”。不知何故,我了解到视图状态也保留了组件树结构。(显然,这种理解是错误的)。另一方面,JSF2.0规范说()如果是回发调用,并且阶段是restoreView,则不调用事件侦听器方法。这是否意味着介于2.1和2.2之间。版本事件框架中有更改?显然回发在渲染响应期间创建了一个新视图(例如导航)。回发是一个ajax调用,不会导航到另一个视图。新视图是在restoreView阶段创建的。这就是我困惑的问题。我没想到还会有另一个事件被解雇。在创建过程中会调用同一视图范围的bean。在理解和回答您的问题时,哪一个最有帮助?就这点而言,组件实例根本不存储在视图状态中。我认为这非常有用。即使是回发调用,我也不知道“将生成JSF组件树”。不知何故,我了解到视图状态也保留了组件树结构。(显然,这种理解是错误的)。另一方面,JSF2.0规范说()如果是回发调用,并且阶段是restoreView,则不调用事件侦听器方法。这是否意味着介于2.1和2.2之间。版本事件框架中有更改?显然回发在渲染响应期间创建了一个新视图(例如导航)。回发是一个ajax调用,不会导航到另一个视图。新视图是在restoreView阶段创建的。这就是让我困惑的地方。我没想到会有另一件事被炒鱿鱼。在创建过程中,调用相同的视图范围bean。