본문 바로가기
JAVA/spring

paging processing(페이징 처리) - 2

by 개폰지밥 2019. 8. 9.
반응형

코드로 배우는 스프링 웹 프로젝트 보면서 해봄

페이징 처리

-       컨트롤러와 프레젠테이션 계층

BoardService까지의 처리가 완료된 후에는 BoardController에 적절한 메소드를 만들고, 적당한 파라미터를 넣어서 호출하는 것입니다. 이때는 스프링 MVC의 메소드에서 자동으로 파라미터가 만들어지고, 처리되는 과정을 이용합니다.

스프링 MVC의 컨트롤러는 특정 URL에 해당하는 메소드를 실행할 떄, 파라미터의 타입을 보고, 해당 객체를 자동으로 생성해 냅니다. 파라미터가 자동으로 수집되기 때문에, 바로 이전에 만든 Criteria라는 클래스를 그대로 사용할 수 있습니다.

1차 화면 테스트

페이징 작업은 자바로 작성되는 코드의 양도 중요하지만, 더 중요한 것은 jsp와 같은 뷰에서의 처리입니다.

 

앞서 언급했듯이 리스트 페이지는 기본적으로 GET 방식을 사용합니다.(간단하게 말해서 모든 조회는 GET 방식을 사용한다고 생각하면 됩니다.) 개발 시에는 GET 방식의 경우 URL을 조작하는 것만으로 정상적인 동작을 확인할 수 있습니다.

 

이전에 만들어진 listAll.jsp 페이지를 복사해서 아래와 같이 listCri.jsp 페이지로 제작합니다.

 

위의 listCri 경우는 Criteria rorcpakst odtjdehlrh, 파라미터의 전달은 없습니다. 이 경우에는 다음과 같이 동작합니다.

Public class Criteria{

Private int page = 1;

Private int perPageNum = 10;

 

생성자를 만들기 않았기 때문에 인스턴스 변수 page, perPageNum110의 값을 가지게 됩니다.

위의 그림은 page 값이 전달되었기 때문에 Criteria 객체에 page 값은 3으로 변경되고, perPageNum 값은 10인 상태가 됩니다.

listCriperPageNum 값을 전달하면 아래와 같은 화면을 볼 수 있습니다.

listCri?perPageNum=20

listCri?page=3&perPageNum=20

 

처음 개발 시작할 때는 perPageNum10으로 고정해 두고 개발하는 것이 좋습니다. 숫자가 20, 50, 100 등으로 변경되는 경우는 여러 번 개발을 진행해 본 이후에 진행해도 늦지 않습니다.

사실 page, perPageNum을 파라미터로 전달하는 방법을 제대로 사용하려면 약간의 제약을 줘야 합니다. 두 데이터는 사용자의 URL로 조정되기 때문인데, 예를 들어 perPageNum의 값을 100000으로 하게 되면, 한 페이지에 10만건의 데이터를 출력하기 때문에, 브라우저가 다 출력하지 못하거나, DB에서 많은 시간을 소모하는 등 많은 문제를 가지게 됩니다.

코드로 배우는 스프링 웹 프로젝트 보면서 해봄

반응형

'JAVA > spring' 카테고리의 다른 글

[Spring] CRUD 구현  (0) 2019.08.28
paging processing (페이징 처리)- 3  (0) 2019.08.09
paging processing(페이징 처리) - 1  (0) 2019.08.08
select Implementation  (0) 2019.08.08
spring redirection  (0) 2019.08.07

댓글