ExtendedDataModel 的 walk 方法中的 SequenceRange 在哪里定义?
Where is the SequenceRange from the walk-method from ExtendedDataModel defined?
ajax4jsf 中的 ExtendedDataModel
使用了一个名为 walk
的方法,看起来像这样:
public void walk(FacesContext ctx, DataVisitor dv, Range range, Object argument){}
此方法在我的应用程序中被多次调用。互联网上的一些主题似乎说后者是由 xhtml 中的 rows="x"
定义的。但是,对我来说 range
总是定义为 0 (firstRow)
- -1 (getRows)
.
所以我想知道这个range
是在哪里定义的,所以我可以弄清楚为什么传递给它的参数是错误的。到目前为止,调试和谷歌搜索对我没有帮助。
范围表示table中显示的数据的可见部分。如果你有分页器,那么分页器显示显示哪一页(=从哪一行到哪一行)数据。
问题可能出在数据 table 的 rows
属性值不正确(例如缺少 rows
属性)。
其他地方可能是数据模型的错误实现。数据模型 class 的对象可用作 rich:dataTable
.
中显示的数据的存储
实例:
public class VSDataModel<RecordType> extends ExtendedDataModel<RecordType> implements Arrangeable {
private final FetchList<RecordType> list;
@Override
public void walk(FacesContext ctx, DataVisitor visitor, Range range, Object obj) {
try {
int firstRow = ((SequenceRange) range).getFirstRow();
int numberOfRows = ((SequenceRange) range).getRows();
if(list == null) {
throw new RuntimeException("Underlying list is null!");
}
if(list.getList() == null || firstRow != list.getFirstRow()) {
list.fetch(firstRow, numberOfRows);
}
for (RecordType elem : list.getList()) {
visitor.process(ctx, list.getPK(elem), obj);
}
} catch(Exception e) {
throw new RuntimeException(e);
}
}
}
用于Javaprivate VSDataModel<Record> dependentList;
和html
<rich:dataTable value="#{bean.dependentList}" rows="#{referenceData.recordsPerPage}">
ajax4jsf 中的 ExtendedDataModel
使用了一个名为 walk
的方法,看起来像这样:
public void walk(FacesContext ctx, DataVisitor dv, Range range, Object argument){}
此方法在我的应用程序中被多次调用。互联网上的一些主题似乎说后者是由 xhtml 中的 rows="x"
定义的。但是,对我来说 range
总是定义为 0 (firstRow)
- -1 (getRows)
.
所以我想知道这个range
是在哪里定义的,所以我可以弄清楚为什么传递给它的参数是错误的。到目前为止,调试和谷歌搜索对我没有帮助。
范围表示table中显示的数据的可见部分。如果你有分页器,那么分页器显示显示哪一页(=从哪一行到哪一行)数据。
问题可能出在数据 table 的 rows
属性值不正确(例如缺少 rows
属性)。
其他地方可能是数据模型的错误实现。数据模型 class 的对象可用作 rich:dataTable
.
实例:
public class VSDataModel<RecordType> extends ExtendedDataModel<RecordType> implements Arrangeable {
private final FetchList<RecordType> list;
@Override
public void walk(FacesContext ctx, DataVisitor visitor, Range range, Object obj) {
try {
int firstRow = ((SequenceRange) range).getFirstRow();
int numberOfRows = ((SequenceRange) range).getRows();
if(list == null) {
throw new RuntimeException("Underlying list is null!");
}
if(list.getList() == null || firstRow != list.getFirstRow()) {
list.fetch(firstRow, numberOfRows);
}
for (RecordType elem : list.getList()) {
visitor.process(ctx, list.getPK(elem), obj);
}
} catch(Exception e) {
throw new RuntimeException(e);
}
}
}
用于Javaprivate VSDataModel<Record> dependentList;
和html
<rich:dataTable value="#{bean.dependentList}" rows="#{referenceData.recordsPerPage}">