[SPRING] Spring MVC 3에서 페이지 매김을 구현하는 방법 [닫기]
SPRINGSpring MVC 3에서 페이지 매김을 구현하는 방법 [닫기]
Spring MVC에서 페이지 매김을 위해 사용할 수있는 구현하기 쉬운 표준 페이지 매김 컴포넌트 / 태그 라이브러리 또는 코드 샘플이 있습니까?
해결법
-
==============================
1.PagedListHolder와 org.springframework.beans.support의 다른 클래스를 살펴보십시오.
PagedListHolder와 org.springframework.beans.support의 다른 클래스를 살펴보십시오.
몇 가지 예를 보려면 샘플의 JPetstore를 참조하십시오. SearchProductsController.java :
public ModelAndView handleRequest(HttpServletRequest request, HttpServletResponse response) throws Exception { String keyword = request.getParameter("keyword"); if (keyword != null) { if (!StringUtils.hasLength(keyword)) { return new ModelAndView("Error", "message", "Please enter a keyword to search for, then press the search button."); } PagedListHolder productList = new PagedListHolder(this.petStore.searchProductList(keyword.toLowerCase())); productList.setPageSize(4); request.getSession().setAttribute("SearchProductsController_productList", productList); return new ModelAndView("SearchProducts", "productList", productList); } else { String page = request.getParameter("page"); PagedListHolder productList = (PagedListHolder) request.getSession().getAttribute("SearchProductsController_productList"); if (productList == null) { return new ModelAndView("Error", "message", "Your session has timed out. Please start over again."); } if ("next".equals(page)) { productList.nextPage(); } else if ("previous".equals(page)) { productList.previousPage(); } return new ModelAndView("SearchProducts", "productList", productList); } }
-
==============================
2.나는 그 일을 할 길을 찾고 있었지만 어떤 표준 구성 요소 나 taglib도 찾지 못했습니다. 주로 페이징은 데이터베이스에서 페이징으로 데이터를 검색해야하기 때문에 페이징이 매우 구체화 될 수 있다고 생각합니다 (Hibernate를 사용하는 경우 Criteria API를 사용하여 페이징을 쉽게 수행 할 수 있습니다). 나는 이런 것을 생각해 냈다.
나는 그 일을 할 길을 찾고 있었지만 어떤 표준 구성 요소 나 taglib도 찾지 못했습니다. 주로 페이징은 데이터베이스에서 페이징으로 데이터를 검색해야하기 때문에 페이징이 매우 구체화 될 수 있다고 생각합니다 (Hibernate를 사용하는 경우 Criteria API를 사용하여 페이징을 쉽게 수행 할 수 있습니다). 나는 이런 것을 생각해 냈다.
public class Pager { private int page; private int results; private String sortOrder; private String sortColumn; // Getters and setters } @Controller public class StuffController { @Autowired SomeEntityService someEntityService; @RequestMapping("/test.html", method = Method.GET) public void getStuffPaged(@RequestParam("id") String id, Pager pager, ModelMap mm) { mm.addAttribute("entities", someEntityService.get(id, pager)); } }
http : //domain/app/test.html? id = 10 & page = 1 & results = 30 & sortOrder = asc에 대한 요청을 수행하면 요청에서 호출기 객체를 가져옵니다.
-
==============================
3.어느 누구도 마음에 와서는 안되며, Google은 구체적인 예와 힌트를 제공하지만 특정 구성 요소는 공개하지 않습니다. 그러나 이론적으로 버튼과 하나 또는 두 개의 요청 매개 변수만으로 충분하지 않습니다. 그런 다음 SQL / DB 작업을 수행하십시오. 나는 JSP / Servlet / DAO 환경에서 비슷한 질문에 대한 답을 여기에 게시했다.
어느 누구도 마음에 와서는 안되며, Google은 구체적인 예와 힌트를 제공하지만 특정 구성 요소는 공개하지 않습니다. 그러나 이론적으로 버튼과 하나 또는 두 개의 요청 매개 변수만으로 충분하지 않습니다. 그런 다음 SQL / DB 작업을 수행하십시오. 나는 JSP / Servlet / DAO 환경에서 비슷한 질문에 대한 답을 여기에 게시했다.
기본적으로 요청 매개 변수로 firstrow (첫 번째 행의 색인을 페이지에 표시)를 전달하고 페이지 번호 형식의 두 개의 버튼 / 링크를 사용하여 첫 번째 행을 행 개수만큼 in / decrement합니다 (한 번에 한 행에 표시되는 행의 양 페이지)를 해당 DB에 따라 각 LIMIT, OFFSET 절 또는 subselects 또는 특정 기능을 사용하여 결과의 하위 집합을 반환하는 SQL 쿼리와 함께 사용합니다. 자세한 코드 예제 및 SQL 쿼리는 위의 답변을 참조하십시오.
-
==============================
4.Spring Data JPA 프로젝트에 대해 들어 본 적이 있습니까? Pagable 인터페이스를 사용하는 유연한 솔루션이 있습니다. 깨끗하고 보일러가없는 페이지 매기기를 구현하는 가장 간단한 방법이라고 생각했습니다. Spring Data JPA 홈페이지에서 더 많은 것을 확인하십시오.
Spring Data JPA 프로젝트에 대해 들어 본 적이 있습니까? Pagable 인터페이스를 사용하는 유연한 솔루션이 있습니다. 깨끗하고 보일러가없는 페이지 매기기를 구현하는 가장 간단한 방법이라고 생각했습니다. Spring Data JPA 홈페이지에서 더 많은 것을 확인하십시오.
-
==============================
5.여기 Spring Data JPA 레퍼런스 문서에 대한 링크가있다. 여기에는 웹 페이지 매김에 대해 매우 깨끗한 접근법이있다.
여기 Spring Data JPA 레퍼런스 문서에 대한 링크가있다. 여기에는 웹 페이지 매김에 대해 매우 깨끗한 접근법이있다.
-
==============================
6.언젠가 스프링 프레임 워크로 페이지 매김에 초점을 맞춘 오픈 소스 자바 라이브러리를 발표했다.
언젠가 스프링 프레임 워크로 페이지 매김에 초점을 맞춘 오픈 소스 자바 라이브러리를 발표했다.
그다지 성공하지 못했을 지 모르지만 누군가 그 시도에 관심이있을 수 있습니다.
다음과 함께 사용하는 예제가 있습니다.
온라인 예제는 다소 쓸모가 없으므로, sourceforge에서 jdal-samples 파일을 더 잘 다운로드하십시오.
from https://stackoverflow.com/questions/2245035/how-to-implement-pagination-in-spring-mvc-3 by cc-by-sa and MIT license
'SPRING' 카테고리의 다른 글
[SPRING] 웹 애플 리케이션의 다른 모든 bean이 파괴되기 전에 Spring task executor / scheduler 풀을 어떻게 종료 할 수 있습니까? (0) | 2018.12.11 |
---|---|
[SPRING] Mockito, JUnit 및 Spring (0) | 2018.12.10 |
[SPRING] 스프링을 사용하여 프로그래밍 방식으로 속성 파일에 액세스 하시겠습니까? (0) | 2018.12.10 |
[SPRING] 매일 봄 cron 표현 1 : 01 : am (0) | 2018.12.10 |
[SPRING] 스프링 보안에서 역할과 GrantedAuthority의 차이점 (0) | 2018.12.10 |