dataLoadCoordinator

dataLoadCoordinator facet 支持触发数据加载,以及声明式的将数据加载器和数据容器、可视化组件、视图生命周期事件进行连接。

基本用法

如需在视图的 BeforeShowEvent 事件触发所有的数据加载器,只需在视图的 XML 描述中添加 dataLoadCoordinator,其属性 auto="true"

<facets>
    <dataLoadCoordinator auto="true"/>
</facets>

工作模式

可以配置 dataLoadCoordinator 在自动、手动或半自动模式下工作。

自动模式

此模式中,dataLoadCoordinator 依赖使用特定前缀的参数名称。前缀表示提供参数值和发送变更事件的组件。

默认情况下,数据容器的参数前缀是 container_,可视化组件的参数前缀是 component_。通过 componentPrefixcontainerPrefix 属性可以使用不同的前缀。

如果加载器的查询语句中没有参数,则该加载器会在 BeforeShowEvent 中自动刷新。也就是说,如果查询语句包含任意参数,例如 select e from User e where e.department = :department,则加载器不会在视图打开时自动加载。需要手动设置参数值并调用 userDl.load()

但是 查询条件 中的参数不会影响加载器在 BeforeShowEvent 中的自动加载。

手动模式

此模式中,使用内部的 refresh 元素定义数据加载器何时触发刷新。

半自动模式

auto 属性设置为 true 并且也有一些手动配置的触发器,dataLoadCoordinator 会为所有没有手动配置的加载器做自动配置。

属性

  • auto - 定义 dataLoadCoordinator 的工作模式。默认为 false

  • componentPrefix - 定义 可视化组件 引用参数的前缀,自动模式下,DataLoadCoordinator 从参数定义的组件中获取参数值。默认值为 component_

  • containerPrefix - 定义 数据容器 引用参数的前缀,自动模式下,DataLoadCoordinator 从参数定义的容器中获取参数值。默认值为 container_

refresh 元素

refresh 元素支持为数据加载器定义刷新的条件。

该元素的唯一属性是 loader,定义加载器的 id

refresh 元素可以有下列内部的元素,用于定义触发条件:

  1. onComponentValueChanged - 当可视化组件的值改变时触发加载器。有下列属性:

    • component - 指定可视化组件的 id

    • likeClause - 如果在 查询条件 中使用 like 表达式,可以定义下面三种搜索模式之一:

      • NONE - 默认值。

      • CASE_SENSITIVE - 大小写敏感。

      • CASE_INSENSITIVE - 大小写不敏感。

    • param - 指定查询参数名称。

  2. onContainerItemChanged - 当数据容器中的内容改变时触发加载器。有下列属性:

    • container - 指定数据容器的 id

    • param - 指定查询参数名称。

  3. onViewEvent - 在视图生命周期事件中触发加载器。有下列属性:

    • type - 定义视图事件的类型,可能值:

      • Init - 在 InitEvent 事件中触发。

      • BeforeShow - 在 BeforeShowEvent 事件中触发。

      • Ready - 在 ReadyEvent 事件中触发。