Joshua게시판(SSR)-11-게시글 목록보기 페이징 완료

jaegeunsong97·2023년 8월 14일
0

SSR 기반 JoshuaBlog

목록 보기
11/23

깃허브링크

노션링크

  • boardQueryRepository 수정

  • 더미데이터 추가
package coffee.pastry.joshuablog;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;

import org.springframework.boot.CommandLineRunner;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Profile;
import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;

import coffee.pastry.joshuablog.model.board.Board;
import coffee.pastry.joshuablog.model.board.BoardRepository;
import coffee.pastry.joshuablog.model.user.User;
import coffee.pastry.joshuablog.model.user.UserRepository;

@SpringBootApplication
public class BlogApplication extends DummyEntity {

	@Profile("dev")
	@Bean
	CommandLineRunner init(UserRepository userRepository, BoardRepository boardRepository,
			BCryptPasswordEncoder passwordEncoder) {
		return args -> {

			User song = newUser("song", passwordEncoder);
			User park = newUser("park", passwordEncoder);
			userRepository.saveAll(Arrays.asList(song, park));

			List<Board> boardList = new ArrayList<>();
			for (int i = 1; i < 11; i++) {
				boardList.add(newBoard("제목" + i, song));
			}
			for (int i = 11; i < 21; i++) {
				boardList.add(newBoard("제목" + i, park));
			}
			boardRepository.saveAll(boardList);
		};
	}

	public static void main(String[] args) {
		SpringApplication.run(BlogApplication.class, args);
	}

}
  • 더미엔티티
package coffee.pastry.joshuablog;

import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;

import coffee.pastry.joshuablog.model.board.Board;
import coffee.pastry.joshuablog.model.user.User;

public class DummyEntity {

     protected User newUser(String username, BCryptPasswordEncoder passwordEncoder) {
          return User.builder()
                    .username(username)
                    .password(passwordEncoder.encode("1234"))
                    .email(username + "@nate.com")
                    .role("USER")
                    .profile("person.png")
                    .build();
     }

     protected Board newBoard(String title, User user) {
          return Board.builder()
                    .title(title)
                    .content(title + "에 대한 내용입니다")
                    .user(user)
                    .thumbnail("/images/python.png")
                    .build();
     }
}

  • 페이지 객체 분석

  • main 페이지

disabled : 비활성화 처리

<ul class="pagination mt-3 d-flex justify-content-center">
        <li class="page-item ${boardPG.first ? "disabled" : ""}"><a class="page-link" href="/?page=${boardPG.number - 1}">Previous</a></li>
        <li class="page-item ${boardPG.last ? "disabled" : ""}"><a class="page-link" href="/?page=${boardPG.number + 1}">Next</a></li>
    </ul>

비활성화 부분 주목(Next, Previous)

profile
현재 블로그 : https://jasonsong97.tistory.com/

0개의 댓글