- 참조 링크
https://docs.spring.io/spring-data/jpa/reference/jpa/query-methods.html
JPA Query Methods :: Spring Data JPA
By default, Spring Data JPA uses position-based parameter binding, as described in all the preceding examples. This makes query methods a little error-prone when refactoring regarding the parameter position. To solve this issue, you can use @Param annotati
docs.spring.io
- repository/NewsRepository.java
import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;
@Repository
public interface NewsRepository extends JpaRepository<News, Long>{
Page<News> findAll(Pageable pageable);
}
- controller/NewsController.java
- @RequestParam(0부터)로 page를 int page에 넣겠다.
- Pageable pageable = PageRequest.of(page:현재페이지, 몇개 페이지)
- 리스폰스로 pageable찾기
- hasNext, hasPrev는 이전과 다음의 존재여부
// 페이지네이션
@GetMapping("/list")
public String getNewsList(Model model,
@RequestParam(name = "page", defaultValue = "0") int page) {
Pageable pageable = PageRequest.of(page, 5);
Page<News> newsPage = newsRepository.findAll(pageable);
model.addAttribute("newsPage", newsPage);
model.addAttribute("prev", pageable.previousOrFirst().getPageNumber());
model.addAttribute("next", pageable.next().getPageNumber());
model.addAttribute("hasNext", newsPage.hasNext());
model.addAttribute("hasPrev", newsPage.hasPrevious());
return "news/list";
}
- resources/templates/news/list.mustache
{{>layouts/header}}
<div class="container mt-4">
<ul class="list-group">
{{#newsPage.content}}
<li class="list-group-item">
<h4 class="mb-2"><a href="/news/{{newsId}}">제목 : {{title}}</a></h4>
<small class="text-muted">News ID: {{newsId}}</small>
</li>
{{/newsPage.content}}
<br>
<a href="/news/new">Create News</a>
<ul class="pagination justify-content-center">
{{#hasPrev}}
<a class="page-link" href="?page={{prev}}">Previous</a>
{{/hasPrev}}
{{#hasNext}}
<a class="page-link" href="?page={{next}}">Next</a>
{{/hasNext}}
</ul>
</ul>
</div>
{{>layouts/footer}}
'웹공부 > SPRING' 카테고리의 다른 글
예외 처리 (0) | 2024.12.17 |
---|---|
Delete, Update (0) | 2024.12.17 |
BootStrap 실습 (Create, Read) (0) | 2024.12.16 |
SPRING 기본 (1) | 2024.12.13 |
Intellj Community Edition에서 SPRING 작동하는 법 (0) | 2024.12.13 |