Primefaces 在操作中更新的JSF注入的支持bean属性为空

Primefaces 在操作中更新的JSF注入的支持bean属性为空,primefaces,datatable,Primefaces,Datatable,我在其他bean中注入beanselectOfferPans @ManagedProperty(value="#{selectOfferMpans}") private SelectOfferMpans selectOfferMpans; public void setSelectOfferMpans(SelectOfferMpans selectOfferMpans) { this.selectOfferMpans = selectOfferMpans; } 如果我在第二个

我在其他bean中注入bean
selectOfferPans

@ManagedProperty(value="#{selectOfferMpans}")
private SelectOfferMpans selectOfferMpans;    

public void setSelectOfferMpans(SelectOfferMpans selectOfferMpans) {
    this.selectOfferMpans = selectOfferMpans;
}
如果我在第二个bean的
@PostConstruct
中询问
selectOfferPans.selectedSites
的值,调试器会说它为null

此属性已在1.xhtml的此操作中更新

<p:commandButton id="pCBFind" styleClass="centerAbs" type="submit" icon="ui-  icon-search" value="#{text['selectOfferMpans.find']}" actionListener="#{selectOfferMpans.findCustomer}" update="CustomerData,CustomerSites" oncomplete="expandAll();"/>
来自bean1的代码

public String goToOffers(){
        try{

            JSFHelper.addParamToRequest(SofycParamNames.CUSTOMER_ID,   customerfound.getCustomerId());
        JSFHelper.addParamToRequest(SofycParamNames.OPTION, this.getMenuOrigin());
        return SofycNavigation.VIEW_CREATE_OFFERS_PAGE;

    } catch (Throwable t) {
        log.error("goToOffers:", t);
        JSFHelper.addErrorMessage(ID_OFFER_SELECT_MPANS_FORM, "Error navigating to offers page");            
        return null;
    }
}                  

我错过了什么

这些bean有什么作用域?当您导航到另一个页面时@ViewScoped将不起作用,例如,两个bean都是
@ViewScoped
。嗯,它适用于同一bean的其他属性(在bean1上的
@PostConstruct
中更新的属性),但不适用于此属性
selectedSites
。当您导航到下一页时,第一页的bean将被销毁,因为
@ViewScoped
bean。因此,当您在第二个bean中调用第一个bean的selectedSites时,它们不再存在,因此它们为null。你必须用另一种方法把它们传给第二个beanOK,这是有道理的。我怎么能传递那个属性bean?看看这个
public String goToOffers(){
        try{

            JSFHelper.addParamToRequest(SofycParamNames.CUSTOMER_ID,   customerfound.getCustomerId());
        JSFHelper.addParamToRequest(SofycParamNames.OPTION, this.getMenuOrigin());
        return SofycNavigation.VIEW_CREATE_OFFERS_PAGE;

    } catch (Throwable t) {
        log.error("goToOffers:", t);
        JSFHelper.addErrorMessage(ID_OFFER_SELECT_MPANS_FORM, "Error navigating to offers page");            
        return null;
    }
}