Сортировка таблицы ADF приводит к исключению нулевого указателя, когда я позже пытаюсь извлечь данные строки из таблицы - PullRequest
1 голос
/ 01 марта 2012

Я создаю таблицу 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) возвращает ноль в этом случай.

Может кто-нибудь сказать, почему это происходит и как это исправить. Благодаря.

1 Ответ

0 голосов
/ 05 марта 2012

Попробуйте удалить атрибут selectionListener вашей таблицы

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...