XAgent importPackage与无范围内的托管bean

时间:2015-12-29 11:46:56

标签: xpages xpages-ssjs

XAgent中运行应用程序(业务)逻辑的首选方法是什么?

使用importPackage的XAgent:

XAgent

importPackage(com.test.model.configuration);

FolderConfiguration.updateFolders(
      facesContext.getExternalContext().getRequest().getReader());

XAgent在非范围内使用托管bean:

面-config.xml中

<managed-bean>
        <managed-bean-name>folderConfig</managed-bean-name>
        <managed-bean-class>com.test.model.configuration.FolderConfiguration   
       </managed-bean-class>
        <managed-bean-scope>none</managed-bean-scope>
      </managed-bean

XAgent

folderConfig.updateFolders(
          facesContext.getExternalContext().getRequest().getReader());

我不确定两者的利弊。

感谢任何提示。

1 个答案:

答案 0 :(得分:4)

这两个版本在运行时性能方面都不会有显着差异。

所以,更重要的是代码设计。

管理豆的专业人士:

  • Java类引用定义在中心位置 如果以后更改Java包,则必须更改托管bean 仅限定义
  • JavaScript代码更短

importPackage的专业人士:

  • 使用Java类独立于外部托管bean设置
  • 如果仅调用静态方法
  • ,则不需要实例化Java类

如果您在多个XPage或自定义控件上使用此Java类,我将使用托管bean版本。否则我会使用importPackage或直接调用

com.test.model.configuration.FolderConfiguration.updateFolders(...)