繁体   English   中英

导致原因的原因:“如果绑定大于请求或支持bean的作用域,则可能导致不一致。” ADF中的警告

[英]What causes 'If binding is greater than request or backing bean scope, it can cause inconsistencies.' Warning in ADF

我正在使用ADF中的jsff页面之一,该页面包含一个弹出窗口,并且与它的托管bean绑定。

  <af:popup id="p11"
                  binding="#{pageFlowScope.managedbean.rollBackConfirmPopop}">

在managedbean.java类中

定义在于

 private RichPopup rollBackConfirmPopop;

public void setRollBackConfirmPopop(RichPopup rollBackConfirmPopop) {
    this.rollBackConfirmPopop = rollBackConfirmPopop;
}

public RichPopup getRollBackConfirmPopop() {
    return rollBackConfirmPopop;
}

我已经提到了其中一篇文章,该文章说明了UI组件的可序列化和线程安全问题,并建议将rollBackConfirmPopop的声明概括为trininad组件类,

    org.apache.myfaces.trinidad.util.ComponentReference class

遵循该方法后,我做了如下更改:

     private ComponentReference rollBackConfirmPopop;

         public void setRollBackConfirmPopop1(RichPopup rollBackConfirmPopop) {
    this.rollBackConfirmPopop = ComponentReference.newUIComponentReference(rollBackConfirmPopop);

}

public RichPopup getRollBackConfirmPopop() {
    if (rollBackConfirmPopop!=null)
      {
        return (RichPopup) rollBackConfirmPopop.getComponent();
      }
      return null; 

}

由于可序列化和线程安全问题,它导致内存泄漏。 我尝试了上述方法。 但是警告仍然存在。 请帮助我解决方法并理解概念。

我认为问题在于您已将托管bean与页面流范围绑定在一起。 尝试使用requestScope或backingBeanScope解决问题。 有关详细信息,请访问此链接

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM