복붙노트

[SPRING] Spring MVC 3에서 페이지 매김을 구현하는 방법 [닫기]

SPRING

Spring MVC 3에서 페이지 매김을 구현하는 방법 [닫기]

Spring MVC에서 페이지 매김을 위해 사용할 수있는 구현하기 쉬운 표준 페이지 매김 컴포넌트 / 태그 라이브러리 또는 코드 샘플이 있습니까?

해결법

  1. ==============================

    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. ==============================

    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. ==============================

    3.어느 누구도 마음에 와서는 안되며, Google은 구체적인 예와 힌트를 제공하지만 특정 구성 요소는 공개하지 않습니다. 그러나 이론적으로 버튼과 하나 또는 두 개의 요청 매개 변수만으로 충분하지 않습니다. 그런 다음 SQL / DB 작업을 수행하십시오. 나는 JSP / Servlet / DAO 환경에서 비슷한 질문에 대한 답을 여기에 게시했다.

    어느 누구도 마음에 와서는 안되며, Google은 구체적인 예와 힌트를 제공하지만 특정 구성 요소는 공개하지 않습니다. 그러나 이론적으로 버튼과 하나 또는 두 개의 요청 매개 변수만으로 충분하지 않습니다. 그런 다음 SQL / DB 작업을 수행하십시오. 나는 JSP / Servlet / DAO 환경에서 비슷한 질문에 대한 답을 여기에 게시했다.

    기본적으로 요청 매개 변수로 firstrow (첫 번째 행의 색인을 페이지에 표시)를 전달하고 페이지 번호 형식의 두 개의 버튼 / 링크를 사용하여 첫 번째 행을 행 개수만큼 in / decrement합니다 (한 번에 한 행에 표시되는 행의 양 페이지)를 해당 DB에 따라 각 LIMIT, OFFSET 절 또는 subselects 또는 특정 기능을 사용하여 결과의 ​​하위 집합을 반환하는 SQL 쿼리와 함께 사용합니다. 자세한 코드 예제 및 SQL 쿼리는 위의 답변을 참조하십시오.

  4. ==============================

    4.Spring Data JPA 프로젝트에 대해 들어 본 적이 있습니까? Pagable 인터페이스를 사용하는 유연한 솔루션이 있습니다. 깨끗하고 보일러가없는 페이지 매기기를 구현하는 가장 간단한 방법이라고 생각했습니다. Spring Data JPA 홈페이지에서 더 많은 것을 확인하십시오.

    Spring Data JPA 프로젝트에 대해 들어 본 적이 있습니까? Pagable 인터페이스를 사용하는 유연한 솔루션이 있습니다. 깨끗하고 보일러가없는 페이지 매기기를 구현하는 가장 간단한 방법이라고 생각했습니다. Spring Data JPA 홈페이지에서 더 많은 것을 확인하십시오.

  5. ==============================

    5.여기 Spring Data JPA 레퍼런스 문서에 대한 링크가있다. 여기에는 웹 페이지 매김에 대해 매우 깨끗한 접근법이있다.

    여기 Spring Data JPA 레퍼런스 문서에 대한 링크가있다. 여기에는 웹 페이지 매김에 대해 매우 깨끗한 접근법이있다.

  6. ==============================

    6.언젠가 스프링 프레임 워크로 페이지 매김에 초점을 맞춘 오픈 소스 자바 라이브러리를 발표했다.

    언젠가 스프링 프레임 워크로 페이지 매김에 초점을 맞춘 오픈 소스 자바 라이브러리를 발표했다.

    그다지 성공하지 못했을 지 모르지만 누군가 그 시도에 관심이있을 수 있습니다.

    다음과 함께 사용하는 예제가 있습니다.

    온라인 예제는 다소 쓸모가 없으므로, sourceforge에서 jdal-samples 파일을 더 잘 다운로드하십시오.

  7. from https://stackoverflow.com/questions/2245035/how-to-implement-pagination-in-spring-mvc-3 by cc-by-sa and MIT license