Java FacesUtil.getComponentFor与ExtLibUtil.getComponentFor

Java FacesUtil.getComponentFor与ExtLibUtil.getComponentFor,java,xpages,xpages-extlib,Java,Xpages,Xpages Extlib,我想使用Java在我的应用程序中隐藏一个对话框。因此,我需要对此进行处理(com.ibm.xsp.extlib.component.dialog.UIDialog) 经过调查,我发现了两种实现方式: com.ibm.xsp.util.FacesUtil.getComponentFor(start, id) com.ibm.xsp.extlib.util.ExtLibUtil.getComponentFor(start, id) IBMs API中是否存在差异或不必要的冗余 提前感谢。ExtLi

我想使用Java在我的应用程序中隐藏一个对话框。因此,我需要对此进行处理(com.ibm.xsp.extlib.component.dialog.UIDialog)

经过调查,我发现了两种实现方式:

com.ibm.xsp.util.FacesUtil.getComponentFor(start, id)
com.ibm.xsp.extlib.util.ExtLibUtil.getComponentFor(start, id)
IBMs API中是否存在差异或不必要的冗余


提前感谢。

ExtLibUtil只是一个包装器,请参阅


但是,每次都会查询组件树。更好的方法是使用组件上的
binding
属性将其绑定到Java类中的属性。您只需要记住将属性设置为
transient
,因为组件是不可序列化的。参见蒂姆·特里科尼的注释9

是的,它们现在是等价的。具体来说,ExtLibUtil是8.5.2中存在的一个bug的解决方案,因此,只要您使用较新的服务器,它们都是相同的。如果您仍在使用8.5.2目标,那么ExtLibUtil将是更好的选择。谢谢。如果我说下面的答案(使用findComponent)已经过时了,我说的对吗?Karsten的代码可以追溯到2009年,在扩展库之前。如果评估SSJS的性能优于Java,我会感到惊讶,所以这是我个人的偏好。FacesUtil方法的性能会稍好一些,因为它将直接指向源代码,除非如Jesse所说,您使用的是8.5.2。请不要在托管bean中使用到UIComponents的绑定。这是一种不好的做法,即使属性是暂时的,也可能导致内存问题。可能更好的方法是(在与Jesse Gallagher讨论后)将UIComponent绑定到
requestScope
,然后使用
ExtLibUtil.getRequestScope()
在bean中动态检索?