PageRequestDTO > SPRING_DATA_JPA

본문 바로가기

사이트 내 전체검색

뒤로가기 SPRING_DATA_JPA

PageRequestDTO

페이지 정보

작성자 관리자 작성일 24-06-18 11:22 조회 387 댓글 0

본문

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;

}

}


댓글목록 0

등록된 댓글이 없습니다.


Copyright © dancePKT. All rights reserved.
PC 버전으로 보기