如何以编程方式访问faces-config.xml中设置的端点属性?

时间:2014-05-14 08:15:43

标签: xpages xpages-ssjs ibm-sbt

我正在使用IBM Social Business Toolkit。我已经通过faces-config xml文件中的端点为我的Notes应用程序定义了一个连接。我想知道如何以编程方式访问此文件,因为我找不到返回IBM Connections基本URL的服务。

3 个答案:

答案 0 :(得分:2)

记住端点定义实际上只是创建托管bean是很有用的。托管bean具有您引用它的变量名称 - managed-bean-name属性。您可以直接从SSJS或通过Java中的ExtLibUtil.resolveVariable()访问它。该定义还告诉您正在使用的Java类,例如com.ibm.sbt.services.endpoints.ConnectionsBasicEndpoint。这确实为您提供了获取或设置属性所需的所有信息。

所以从SSJS你可以把它转换为类名,例如

var myService:com.ibm.sbt.services.endpoints.ConnectionsBasicEndpoint = connections

因此冒号后面的位将是managed-bean-class值,而等号后面的位将是managed-bean-name。在Java中,您可以使用

ConnectionsBasicEndpoint myService = (ConnectionsBasicEndpoint) ExtLibUtil.resolveVariable(ExtLibUtil.getXspContext().getFacesContext(), "connections");

然后您就可以访问该类的所有方法,因此您应该能够检索所需的内容。

答案 1 :(得分:0)

属性是Java类的一部分,在Faces-Config.xml中引用它们。因此,通过他的完全限定名称或bean名称来获取类,并设置或获取属性

答案 2 :(得分:0)

我认为最好的路线很可能就是保罗所建议的:通过名称解析变量并使用吸气剂来获得有效的属性。

对于其他情况,斯文的建议是一个很好的建议。通过将faces-config.xml文件作为资源访问,您可以将其加载到XML解析器中并使用XPath查找值。我在OpenNTF Domino API的下一个版本中做了很多这样的技术,它将有一组操作Faces配置的方法。但是,一个关键方面是直接读取XML文件只会获得字符串值,这可能是EL表达式,而使用resolveVariable路径将获得真正的当前属性。