在重复控制数据绑定和行之间共享计算 属性
sharing computation between repeat control data-binding and row property
对于 xp:repeat 控件,我通过一个包含 java 对象列表的托管 bean 计算数据绑定。例如
employeeBean.loadList(key);
return employeeBean.profiles;
第一行将在 bean 上设置配置文件字段,该 bean 将包含一个带有配置文件对象的数组列表。
在某些情况下,客户不希望有分页控件,所以我计算行数如下:
employeeBean.loadList(key);
var coll = employeeBean.profiles;
return coll.length;
我注意到我调用了同一个方法两次,而我在第一次调用时已经有了数据。
如何在数据绑定计算和行 属性 计算之间共享数据?
一切都取决于 loadList()
实施。使其成为多次调用的最佳选择,你就没事了。只需将您的列表保存在 bean 的某些内部 属性 中并使用缓存:
if (property == null) {
property = getListData();
}
return property;
使用范围,request
或 view
应该没问题。如果您的列表包含 Domino 本机对象,请仅使用 request
。
对于 xp:repeat 控件,我通过一个包含 java 对象列表的托管 bean 计算数据绑定。例如
employeeBean.loadList(key);
return employeeBean.profiles;
第一行将在 bean 上设置配置文件字段,该 bean 将包含一个带有配置文件对象的数组列表。
在某些情况下,客户不希望有分页控件,所以我计算行数如下:
employeeBean.loadList(key);
var coll = employeeBean.profiles;
return coll.length;
我注意到我调用了同一个方法两次,而我在第一次调用时已经有了数据。
如何在数据绑定计算和行 属性 计算之间共享数据?
一切都取决于 loadList()
实施。使其成为多次调用的最佳选择,你就没事了。只需将您的列表保存在 bean 的某些内部 属性 中并使用缓存:
if (property == null) {
property = getListData();
}
return property;
使用范围,request
或 view
应该没问题。如果您的列表包含 Domino 本机对象,请仅使用 request
。