数据组件
数据组件是视图中的非可视化元素,数据组件可以加载数据,将数据与数据感知可视化组件进行绑定以及保存修改的数据至数据存储。
-
Containers - 数据容器 是连接实体和数据感知可视化组件的粘合剂。框架为单个实体或实体集合提供了不同的数据容器。
-
Loaders - 数据加载器 将数据加载至数据容器。
-
DataContext - 数据上下文 跟踪实体的改动并按需保存实体改动。
一般来说,数据组件在视图 XML 的 <data>
元素中定义:
<data readOnly="true">
<collection id="departmentsDc"
class="com.company.onboarding.entity.Department">
<fetchPlan extends="_base">
<property name="hrManager" fetchPlan="_base"/>
</fetchPlan>
<loader id="departmentsDl" readOnly="true">
<query>
<![CDATA[select e from Department e]]>
</query>
</loader>
</collection>
</data>
数据组件与可视化组件一样,能通过注入的方式在控制器使用:
@ViewComponent
private CollectionContainer<Department> departmentsDc;
某个特定视图的数据组件注册在 ViewData
对象中,该对象可以在视图控制器中通过 getViewData()
方法获取。使用该对象可以很方便地为视图加载所有的数据,示例:
@Subscribe
public void onReady(final ReadyEvent event) {
getViewData().loadAll();
}
使用 DataLoadCoordinator facet 可以声明式地将数据加载器与数据容器、可视化组件以及视图事件进行连接。 |
本页是否有帮助?
感谢您的反馈