“列表”组件中的列表处理

“列表”组件的每个实例都与 com.ibm.bpe.jsf.handler.BPCListHandler 类的一个实例相关联。

此列表处理程序记录相关列表中被选中的项并提供了通知机制。此列表处理程序是通过 bpe:list 标记的 model 属性与“列表”组件绑定的。

列表处理程序的通知机制是使用 com.ibm.bpe.jsf.handler.ItemListener 接口实现的。业务流程编排器资源管理器使用此通知机制来使列表条目与不同类型的项的详细信息页相关联。通知事件的触发器通常是当前列表中显示的项的某个属性。

要利用通知机制,请将该属性的 bpe:column 标记的 action 属性值设置为应用程序在通知事件被触发时要转到的 JSF 导航目标。“列表”组件将列中的条目显示成 JSF 命令链接。该链接被触发时,就确定了代表该列表条目的对象,该对象将被传递至所有已注册的项侦听器。可以在 JavaServer Faces(JSF)应用程序的配置文件中注册此接口的实现。

BPCListHandler 类还提供了 refreshList 方法。可以在 JSF 方法绑定中使用此方法来实现用于再次运行查询的用户界面控件。

查询实现

可以使用列表处理程序来显示所有类型的对象及其属性。显示的列表内容取决于为列表处理程序配置的 com.ibm.bpc.clientcore.Query 接口实现所返回的对象列表。可以使用 BPCListHandler 类的 setQuery 方法来以编程方式设置查询,也可以在应用程序的 JSF 配置文件中配置查询。

不仅可以对业务流程编排器 API 运行查询,也能对应用程序能够访问的任何其他信息来源(例如内容管理系统或数据库)运行查询。唯一的要求是 execute 方法将查询结果作为对象的 java.util.List 返回。

返回的对象类型必须保证有适当的 getter 方法可用于处理定义了该查询的列表列中显示的所有属性。要确保返回的对象类型适合于列表定义,可以将 Faces 配置文件中定义的 BPCListHandler 实例的 type 属性值设置为所返回的对象的标准类名。可以在查询实现的 getType 调用中返回此名称。在运行时,列表处理程序将检查对象类型是否与定义一致。

要将错误消息映射到列表中的特定条目,查询返回的对象必须实现具有以下特征符的方法:public Object getID()

错误处理

在下列错误情况下,可以利用 BPCListHandler 类提供的错误处理功能。
  • 运行查询或执行命令时出错

    如果执行查询期间发生了错误,BPCListHandler 类就会对由于访问权不足而导致的错误与其他异常进行区分。要捕获由于访问权不足而导致的错误,查询的 execute 方法所抛出的 ClientException 的 rootCause 参数必须是 com.ibm.bpe.api.EngineNotAuthorizedException 或 com.ibm.task.api.NotAuthorizedException 异常。“列表”组件将显示错误消息,而不是显示查询结果。

    如果该错误不是由于访问权不足而导致的,BPCListHandler 就会将该异常对象传递给 JSF 应用程序配置文件中的 BPCError 键定义的 com.ibm.bpc.clientcore.util.ErrorBean 接口实现。设置该异常时,将调用错误导航目标。

  • 处理列表中显示的项时出错

    BPCListHandler 类实现了 com.ibm.bpe.jsf.handler.ErrorHandler 接口。使用者可以在 setErrors 方法中使用类型为 java.util.Map 的映射参数来提供关于这些错误的信息。此映射包含标识(作为键)和异常(作为值)。这些标识必须是引起错误的对象的 getID 方法所返回的值。如果设置了该映射,并且任何标识与该列表中显示的任何项相匹配,列表处理程序就会在该列表中自动添加包含该错误消息的列。

    为了避免该列表包含过期的错误消息,请复位错误映射。在下列情况下,该映射将自动复位:
    • 调用了 BPCListHandler 类的 refreshList 方法。
    • 对 BPCListHandler 类设置了新查询。
    • 使用“命令栏”组件来对列表项触发了操作。“命令栏”组件使用此机制作为其中一种错误处理方法。

使用条款 |


(c) Copyright IBM Corporation 2005, 2006.
本信息中心基于 Eclipse 技术(http://www.eclipse.org)。