PageRequestDTO
페이지 정보
본문
package web.dto;
import java.net.URLEncoder;
import org.springframework.data.domain.PageRequest;
import org.springframework.data.domain.Pageable;
import org.springframework.data.domain.Sort;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class PageRequestDTO {
@Builder.Default
private int page = 1; //현재 페이지
@Builder.Default
private int size = 10; //한 페이지당 출력 게시물 수
@Builder.Default
private int block = 5; //블럭 출력 수
private String type; //검색 종류 : t,c,w,tc,tw,tcw
private String keyword; //검색어
private String link; //검색 조건, 페이징 조건 등을 문자열로 구성
public String[] getTypes() {
if(type == null || type.isEmpty()) {
return null;
}
return type.split("");
}
public Pageable getPageable(String...props) {
//...은 가변 인자로서, 여러 개의 문자열을 메서드에 전달할 수 있다.(배열 처리)
// 페이징 처기를 위해서 Pageable타입으로 반환
return PageRequest.of(this.page -1, this.size, Sort.by(props).descending());
}
public String getLink() {
//검색 조건과 페이징 조건 등을 문자열로 구성해서 반환
if(link == null) {
StringBuilder builder = new StringBuilder();
builder.append("page="+this.page);
builder.append("&size="+this.size);
if(type != null && type.length() > 0) {
builder.append("&type="+this.type);
}
if(keyword != null) {
try {
builder.append("&keyword="+URLEncoder.encode(keyword, "utf-8"));
} catch (Exception e) {
}
}
link = builder.toString();
}
return link;
}
}
- 이전글◎ 목록, 검색 - 처리 24.06.18
- 다음글PageResponseDTO 24.06.18
댓글목록
등록된 댓글이 없습니다.