Я создаю таблицу Adf следующим образом:
<af:table value="#{bindings.TargetsAssign.collectionModel}"
var="row"
rows="#{bindings.TargetsAssign.rangeSize}"
fetchSize="#{bindings.TargetsAssign.rangeSize}"
rowBandingInterval="0"
selectionListener="#{bindings.TargetsAssign.collectionModel.makeCurrent}"
rowSelection="multiple"
styleClass="AFStretchWidth" columnStretching="last"
binding="#{pageFlowScope.mappingBean.m_mappingtable}"
id="t3">
Все столбцы в этой таблице можно сортировать.
Для выбора нескольких строк в этой таблице файл Bean содержит следующий код:
RowKeySet rks = m_mappingtable.getSelectedRowKeys();
Iterator itr = rks.iterator();
DCBindingContainer bindings = (DCBindingContainer)BindingContext.getCurrent().getCurrentBindingsEntry();
DCIteratorBinding targetIter = bindings.findIteratorBinding("TargetsAssign");
RowSetIterator tableIterator = targetIter.getRowSetIterator();
while (itr.hasNext())
{
key = (Key) ((List)itr.next()).get(0);
Row row = tableIterator.getRow(key);
String str=(String)row.getAttribute("TargetName"); /*----------------->> THis line is throwing Null pointer exception.
.
.
.further code......*/
}
Перед сортировкой таблицы с использованием параметра сортировки в пользовательском интерфейсе все работает нормально, но как только мы сортируем таблицу и снова пытаемся выбрать строки в таблице для выполнения какой-либо операции с использованием приведенного выше кода, возникает исключение Null Pointer, потому что строка row = tableIterator.getRow(key)
возвращает ноль в этом случай.
Может кто-нибудь сказать, почему это происходит и как это исправить.
Благодаря.