Разбиение на страницы с данными не отображается
-
12-11-2019 - |
Вопрос
Я создаю очень простой datatable с помощью тега JSF 2.0 DataTable, но по какой-то причине разбиение страницы на страницы не отображается.Почему это?
<p:dataTable var="garbage" value="#{resultsController.allGarbage}" paginator="true" rows="10">
<p:column>
<f:facet name="header">
<h:outputText value="Filename" />
</f:facet>
<h:outputText value="#{garbage.filename}" />
</p:column>
<p:column>
<f:facet name="header">
<h:outputText value="Description" />
</f:facet>
<h:outputText value="#{garbage.description}" />
</p:column>
<p:column>
<f:facet name="header">
<h:outputText value="Upload date" />
</f:facet>
<h:outputText value="#{garbage.uploadDate}" />
</p:column>
</p:dataTable>
Решение
Используйте p:dataTable
вместо h:dataTable
.
Пагистрация работает только с DataTable Primefaces, а не с простым DATATable JSF.
Другие советы
ГенеракодицетагCode является атрибутом реализации DataTable Primefaces, поэтому вам придется использовать тег DataTable из пространства имен Primefaces: paginatorAlwaysVisible
.
p:dataTable
, определенный на вашей странице, так что JSF вводит знание, где выводить дополнительные сценарии и таблицы стилей.Если это так, вы должны увидеть сообщение об ошибке, например:
Один или несколько ресурсов имеют цель «головы», но в представлении был определен компонент «голова».
Чтобы помочь отладочной обработке вы можете добавить следующий параметр контекста на ваш Web.xml:
.<context-param> <param-name>javax.faces.PROJECT_STAGE</param-name> <param-value>Development</param-value> </context-param>
@sfrj:Вам, вероятно, нужно что-то вроде этого:
<p:dataTable var="garbage" value="#{resultsController.allGarbage}" paginator="true" rows="10" paginatorPosition="bottom" paginatorTemplate="{FirstPageLink} {PageLinks} {LastPageLink} {RowsPerPageDropdown}" rowsPerPageTemplate="5,10,15,20" paginatorAlwaysVisible="false">
paginator="true"
только сообщает компоненту p:DataTable, что вам нужен элемент управления paginator, но вы еще не указали, что вы в нем хотите.Следовательно, вам нужен paginatorTemplate
атрибут.То paginatorAlwaysVisible="false"
атрибут хорош с эстетической точки зрения, если ваш запрос не возвращает записи - в этом случае раздел разбиения на страницы не будет отображаться, если записей нет.В противном случае, это видно, если есть хотя бы одна запись, возвращенная из вашего запроса.