Java 多次调用后构造函数

Java 多次调用后构造函数,java,ajax,jsf-2,primefaces,ajax4jsf,Java,Ajax,Jsf 2,Primefaces,Ajax4jsf,简而言之,问题就在这里 当我更改菜单的值时,它会在backingbean中再次执行post构造函数,然后执行方法fillAreas,我使用了视图范围 <p:selectOneMenu id="governate" value="#{add.selectedGovern}" style="height:26px; text-align: right; width: 303px;" va

简而言之,问题就在这里 当我更改菜单的值时,它会在backingbean中再次执行post构造函数,然后执行方法fillAreas,我使用了视图范围

<p:selectOneMenu id="governate" value="#{add.selectedGovern}"  style="height:26px; text-align: right; width: 303px;"
                                                     valueChangeListener="#{add.fillAreas}" rendered="#{languageBean.isDefaultLanguage==true}" immediate="true" >  
                                        <f:selectItem itemLabel="---#{prompts._select} ---" itemValue="0"/>
                                        <f:selectItems value="#{add.governrateList}" var="govern" itemLabel="#{govern.governrateName}" itemValue="#{govern.governrateId}" />  
                                        <f:ajax  immediate="true"/>

                                    </p:selectOneMenu>

如何防止调用post构造函数?若后构造函数只调用了一次,为什么每次我从菜单中选择时它都会调用?
提前感谢。

当视图范围bean的属性绑定到标记处理程序的属性(JSTL
、Facelets
、JSF
等)或JSF UI组件的
绑定
id
属性(
等)时,将在每个请求上重新创建视图范围bean

这是有关的。您可以通过禁用特定视图的部分状态保存来解决此问题,或者通过寻找替代方法来实现所需的功能需求

另见:

通过后构造函数,您是指
ViewScoped
bean的后构造函数吗?是的,通过我的ViewScoped bean的后构造函数。