Я совершенно новый с нумерацией страниц и ничего не знаю. Никогда не работал с этим. Кто-то сказал мне, что легко и хорошо использовать спецификации для нумерации страниц и прочего. Теперь я успешно реализовал свою спецификацию, но я понятия не имею, как работает разбиение на страницы и как я получу ее на свой веб-интерфейс.
Обычно я получаю список, который отображает все в базе данных. Но когда я использую объект Pagination, мне нужна страница, поэтому я изменил список на Page.
Что я пробовал до сих пор:
SearchController:
public class SucheController {
@Autowired
private TelefonbuchRepository telefonbuchRepository;
private Page<Telefonbuch> eintraege;
private Telefonbuch telefonbuch = new Telefonbuch();
public void search(String vorname, String nachname, String telefonnummer, String handynummer) {
if (!vorname.isEmpty()) {
eintraege = telefonbuchRepository.findAll(TelefonbuchSpecifications.hasVorname(vorname), PageRequest.of(0, 5));
}
Я не нашел ни одного учебника для этого, поэтому я просто попытался передать свою спецификацию и элемент Pagination. При поиске ошибка:
javax.el.PropertyNotFoundException: Property [id] not found on type [org.springframework.data.domain.PageImpl]
Как это сделать правильно? Знаете ли вы какие-либо учебники или веб-сайты для этого? Я даже не знаю, смогу ли я показать объекты Page на веб-интерфейсе. Я использую JSF с файлами xhtml. Если вам нужна дополнительная информация, скажите мне.
Edit:
suche.xhtml по запросу:
<p:dataTable id="table" var="telefonbuch" value="#{sucheController.eintraege}" stickyHeader="true" resizableColumns="true" liveResize="true" style="margin-bottom:20px" paginator="true" rows="10" emptyMessage="Keine Telefonbucheinträge vorhanden" selection="#{telefonbuchList.selectedEntry}" selectionMode="single" rowKey="#{telefonbuch.id}"
paginatorTemplate="{RowsPerPageDropdown} {FirstPageLink} {PreviousPageLink} {CurrentPageReport} {NextPageLink} {LastPageLink}"
rowsPerPageTemplate="10,20,30">
Теперь я вижу telefonbuch.id в конце первой строки.