таблица данных jsf с ленивой загрузкой, фильтрацией и сортировкой

Я работал над несколькими проектами с большим количеством таблиц данных. Таблицы имели сортировку, фильтрация и подкачка страниц, конечно, на стороне сервера и со справкой дб (все базы данных реализовали сортировку, фильтруя - где и ограничивают возвращенные результаты).

Когда workig на реальном приложении там являются тысячами даже миллионов строк.

Но я видел несколько компонентов таблицы данных JSF.
Они реализуют разбиение на страницы, сортируя и фильтруя на стороне клиента! Согласно мне это очень глупо. Эту технологию называют предприятием, и они сортируют данные по стороне клиента со сценарием Java!

Я не видел хорошей сетки данных JSF, которая имеет сборку в функциях сортировки, фильтруя и ленивой загрузки на стороне сервера.

Почему это? Я смотрю в неправильном направлении или действительно там ни в какой поддержке сборки этого. В последнее время я тестирую primefaces и ленивую таблицу данных загрузки. Это действительно хорошо работает, но таблица я могу только ленивая загрузка. Если Вы добавляете вид и фильтр, то проблемы начинаются.

Заключение: Есть ли какая-либо таблица данных компонент JSF, чем может выполнить ленивое разбиение на страницы загрузки, и фильтрацию и сортировку на стороне сервера? Если я должен реализовать свое собственное решение благодаря командам, которые сделали клиентскую сортировку и фильтрацию, они бесполезны.

6
задан Vasil Lukach 3 April 2016 в 23:28
поделиться

1 ответ

Нет, нет. Потому что библиотека компонентов не может знать, каков будет механизм сохранения.

Однако многие таблицы данных предлагают варианты для этого. Например, datatable richfaces имеет так называемую DataModel. Например, мы сделали следующее:

public class CustomDataProvider implements DataProvider<ClassToShow>,
        Sortable2, Filterable { .. }


public class PagingExtendedTableDataModel<T> extends ExtendedDataModel implements
        Serializable, Modifiable {

    private DataProvider dataProvider;
    private Object rowKey;
    private List wrappedKeys;
    private Map wrappedData;
    private Integer rowCount;
    private Integer rowIndex;
    private List<FilterField> filterFields;
    private List<SortField2> sortFields;

    public PagingExtendedTableDataModel(DataProvider<T> dataProvider) { .. }

}

Вам нужно будет реализовать все методы в соответствии с вашим механизмом сохранения состояния

5
ответ дан 17 December 2019 в 04:43
поделиться
Другие вопросы по тегам:

Похожие вопросы: