我想找到一個使用Spring PagingAndSortingRepository DAO的Thymeleaf分頁的完整解決方案。我得到了一個部分解決方案,但我無法獲得最終解決方案。我認爲將其他人作爲代碼snipet會很有趣,所以我會要求整個事情。我在網上找不到解決方案,這對我來說很陌生(因爲我認爲這可能是一個很常見的問題)。分頁Thymeleaf 3.0 Spring MVC
最終的解決方案應該像谷歌的分頁一樣:只有在有意義的情況下雙方都有箭頭;與最多10個數字(例如),它應該從1..10 - > 11..20等等,當你點擊右箭頭;當你點擊10時移動到5..15。就像谷歌,你知道。大小控制每個頁面中的項目數量,而不是分頁欄中的塊或鏈接數量。
我在春天延伸PagingAndSortingRepository一個DAO庫...
包music.bolo.domain.repository;
import org.springframework.data.repository.PagingAndSortingRepository; import org.springframework.stereotype.Repository;
import music.bolo.domain.entity.Announcement;
@Repository公共接口AnnouncementDao延伸 PagingAndSortingRepository {
公告findFirstByOrderByDateDesc(); }
所以,我的服務可以使一個請求,每一頁都將得到totalPageNumbers(http://docs.spring.io/spring-data/commons/docs/current/api/org/springframework/data/domain/Page.html)...
私人最終靜態INT PAGESIZE = 2;
.. @Autowired註解:
public Page<Announcement> readAnnouncementPage (int pageNumber){ PageRequest request = new PageRequest(pageNumber-1, PAGESIZE, Sort.Direction.DESC, "date"); return announcementDao.findAll(request); }
我的控制器使用該數據的所有信息發送到Thymeleaf
@RequestMapping(value = "/viewannouncements", method = RequestMethod.GET) ModelAndView viewAnnouncements(ModelAndView modelAndView, @RequestParam(name = "p", defaultValue = "1") int pageNumber) { Page<Announcement> page = announcementService.readAnnouncementPage(pageNumber); modelAndView.getModel().put("page2th", page); modelAndView.setViewName("viewannouncements"); return modelAndView; }
我的解決方法是局部,它一直顯示所有的頁面,沒有箭頭控制(實際上是無用的),沒有任何其他funcionality,但它是我能做的最多的w沒有bug的ork。
\t <div class="tag-box tag-box-v7 text-justify">
\t \t <!-- <h2>Pagination Centered</h2>-->
\t \t <div class="text-center">
\t \t \t <ul class="pagination">
\t \t \t \t <li><a href="#">«</a></li>
\t \t \t \t <!--<li>«</li>-->
\t \t \t \t <li th:each="i : ${#numbers.sequence(1, page2th.TotalPages)}">
\t \t \t \t \t <a th:href="@{'/viewannouncements?p='}+${ i }" th:text="${ i }">1</a></li>
\t \t \t \t <!--<li>»</li>-->
\t \t \t \t <li><a href="#">»</a></li>
\t \t \t </ul>
\t \t </div>
\t </div>
你嘗試用可分頁https://github.com/mtiger2k/pageableSpringBootDataJPA或此http這個方法:// stackoverflow.com/a/23393348/643500 –
您可以添加到您的視圖dataTables支持相當不錯的分頁和易於實現 – cralfaro
感謝HitHam,我嘗試了代碼從http://stackoverflow.com/questions/18490820/spring- thymeleaf - 如何做 - 實施 - 分頁換一個列表/ 23 393348#23393348但我看到的問題是它沒有實現塊。也就是說,如果您有100頁的結果(5000個鏈接),您希望以10個塊(每個塊中包含50個結果的大小)顯示它們,並且從一個塊移動到另一個塊,這是不考慮的。 – Mike