Pageable

Find Process (Controller - Service - Repository)

public abstract class EntityHandler<T,Q> {
 
	public String findForm(EntityPageable pageable, Model m, Q query, BindingResult e){...}
	.
	.	
}

public interface EntityService<T, Q>{
	
	public Iterable<T> findForm(Q query, EntityPageable pageable);
	.
	.
}

public interface EntityRepository<T, ID extends Serializable> {
	public List<T> findAll(Object query);
	public Page<T> findAll(Object query, Pageable pageable);
	.
	.
}
		
Note:
  1. 클라이언트에서 검색 조건 및 페이지 정보 파라미터와 함께 Controller Layer 를 호출한다.
  2. Controller Layer 의 findForm() 에서 Service Layer 의 findForm() 를 호출한다.
  3. Service Layer 의 findForm() 에서 EntityPageable 의 isEnable() 을 판단하여, Repository Layer 의 적절한 findAll() 를 호출하여 EntityPage 또는 List 를 생성한다.
  4. Controller findForm() 에서 Service 로 부터 리턴 받은 EntityPage 또는 List 를 "model_query_result" 라는 이름으로 Model 에 담는다.
  5. View Layer 에서 이를 클라이언트에 출력한다.

EntityPageable

HTTP Request Parameter Name Description
model_query_pageable.enablepageNumber , default value is 0
model_query_pageable.pageNumberpageSize , default value is 10
model_query_pageable.sortOrder[].propertyorder property name
model_query_pageable.sortOrder[].directionorder direction value
Note:
Springfield 는 검색 결과 데이터행의 Paging 과 Ordering 처리를 위해 com.u2ware.springfield.domain.EntityPageable 을 사용한다.
기본 등록 되는 EntityPageableArgumentResolver 가 "model_query_pageable" 라는 Prefix 를 가진 HTTP Parameter 를 수집하여 EntityPageable 를 생성한다.

EntityPage

EL Description
model_query_result.contentContent List
model_query_result.pageNumberpageNumber
model_query_result.pageSizepageSize
model_query_result.totalElementstotal row Count
model_query_result.totalPagestotal Pages Count
model_query_result.previousPageprevious page number of indexing
model_query_result.beginPagebegin page number of indexing
model_query_result.endPageend page number of indexing
model_query_result.nextPagenext page number of indexing
Note:
Springfield 는 검색 결과 객체로 List 또는 com.u2ware.springfield.domain.EntityPage 를 사용한다.
EntityPage 는 결과 데이터행과 각종 Paging 결과 정보들을 담고 있다. 다음표는 EntityPage 의 속성들이며, View 단에서 EL 로 접근가능하다.