Primfaces 6.2 с безмятежностью (проблема с датами) - PullRequest
0 голосов
/ 04 февраля 2019

Заголовок ## Мы используем Primefaces 6.2 с JSF2.1.0.

наше определение данных приведено ниже в xhtml.

<p:dataTable id="dataTable" var="datatable" style="min-height:450px !important;"
             widgetVar="searchDataTable" resizableColumns="false" paginatorAlwaysVisible="false"
             styleClass="ui-datatable-ver-scroll datatable-wrap-column" 
             filteredValue="#{advSearchAction.filteredSearchList}"
             value="#advSearchAction.searchValueBeanLazyDataModel}" paginator="true" 
             rowKey="#{datatable.ROWID}" filterEvent="change" rows="#{sessionScope['SRGRID_ROWS']}"
             lazy="true" selection="#{advSearchAction.selectedRecordArr}" 
             paginatorTemplate="{CurrentPageReport}  {FirstPageLink} {PreviousPageLink} {PageLinks} {NextPageLink} {LastPageLink} {RowsPerPageDropdown}"
             rowsPerPageTemplate="# {commonmsg.searchDataTable$rowsPerPageTemplate}" 
             paginatorPosition="bottom">

Здесь все данные успешно заполняются вdatatable, и если мы выбираем datarow, то он генерирует исключение нулевого указателя.

См. ошибку ниже.

15: 15: 10,441 INFO [javax.enterprise.resource.webcontainer.jsf.context] (http-localhost-127.0.0.1-85-2) java.lang.NullPointerException: java.lang.java: 67) [classes:] at com.iii.orn11j.advsearch.SearchValueBeanLazyDataModel.getRowData (SearchValueBeanLazyDataModel.java:1) [классы:] в org.primefaces.component.datatable.DataDataTa.Table.45).[primefaces-6.2.jar:] на org.primefaces.component.datatable.feature.SelectionFeature.decodeSingleSelection (SelectionFeature.java:75) [classes:] на org.primefaces.component.datatable.feature.SelectionFeature.decode (SelectionFeature.java:57) [classes:] в org.primefaces.component.datatable.DataTableRenderer.decode (DataTableRenderer.java:71) [primefaces-6.2.jar:] в javax.face.component.UIComponentBase.decode (UIComponentBase.java:787) [jboss-jsf-api_2.1_spec-2.0.0.Final.jar: 2.0.0.Final]

Мой Вызов метода SearchValueLazyBeanDataModel выглядит следующим образом:

@Override
public SearchValueBean getRowData(String rowKey) {
    final List<SearchValueBean> rows = (List<SearchValueBean>)getWrappedData();

    for (SearchValueBean SearchValueBean : rows) {
        if (SearchValueBean.getROWID().equals(rowKey))
            return SearchValueBean;
    }

    return null;
}

Здесь идет идентификатор строки, переданный из xhtml, и во время метода decodeSingleSelection () класса SelectionFeature метод данных getRowData() возвращает значение null, а исключение NullPointerException -выкинут из вызывающей части.

Примечание: мы настроили SelectionFeature.java из jar primefaces, и ниже приведена часть ошибки моего кода при отладке.

void decodeSingleSelection(DataTable table, String selection) {
    if (ComponentUtils.isValueBlank(selection)) {
        table.setSelection(null);
    } else {
        table.setSelection(table.getRowData(selection));
    }
}

Может кто-нибудь помочь, пожалуйстаменя в этом отношении.

...