我将postAddtoView事件监听器添加到下面的组件中。我期待着 在创建初始视图期间调用orderView.populateForm侦听器方法一次(https://javaserverfaces.java.net/nonav/docs/2.2/javadocs/javax/faces/event/PostAddToViewEvent.html )。 对于恢复视图的任何回发调用,我不希望添加新的组件实例来查看。因此没有事件要发射。
但是,正在为每个回发调用调用事件侦听器方法。
<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是一个视图范围的CDI bean。据我所知,视图范围bean存储在局部视图状态,默认情况下启用部分视图状态保存。 (BalusC在这里给出了关于问题的一个很好的解释Should PARTIAL_STATE_SAVING be set to false?)为了看到它有效,我禁用/启用了部分状态保存。它没有帮助。
提前致谢。 PS:我在Mojarra 2.2.12 / Glassfish 4.1上运行