PageRequestDTO > SPRING_DATA_JPA

본문 바로가기
사이트 내 전체검색

SPRING_DATA_JPA

PageRequestDTO

페이지 정보

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

본문

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;

}

}


댓글목록

등록된 댓글이 없습니다.

회원로그인

회원가입

사이트 정보

공지사항
자유게시판
질문답변
1:1문의

 

별명 : 터푸가위
주소 : 부산시 동래구 명장로20번길 90
대표 : 박규태
메일 : dancepkt@******.com

접속자집계

오늘
208
어제
144
최대
10,760
전체
267,156
Copyright © dancePKT . All rights reserved.