모델 설정 여부에 따른 th:if 조건문 설정

2024. 1. 8. 15:12
728x90

Controller에서 

전체 게시판 보기 >는 모델에 따로 맵핑할 필요가 없고

나머지 카테고리별 게시판 보기 >는 모델에 맵핑하여 board를 전해준다.

 

이때 게시판 화면은 같기 때문에 th:if문으로 경우에 따른 조건을 설정해주어야 한다.

 

컨트롤러

    // 카테고리별 게시글 목록 보기
    @GetMapping("/{boardId}")
    public String readArticles(@PathVariable Long boardId, Model model) {
        Board board = boardService.findByBoardId(boardId).orElse(null);
        model.addAttribute("boards", board);
        model.addAttribute("articles", boardService.readAllArticlesByBoardId(boardId));
        return "articleList";
    }

    // 전체 카테고리 게시글 목록 보기
    @GetMapping("/allCategory")
    public String readAllCategoryArticles(Model model) {
        model.addAttribute("articles", boardService.readAllArticles());
        return "articleList";
    }

 

 

이때 html은 이렇게 설정해주었다. 

    <div class="d-flex justify-content-between align-items-center mb-4">
<!--        모델이 설정된 경우 boards는 null이 아님-->
        <h2 th:if="${boards != null}" th:text="${boards.category +' 게시판 게시글 목록 보기'}">게시판 게시글 목록 보기</h2>
<!--        모델이 설정되지 않은 경우 (즉, 전체 카테고리 목록) boards는 null이다. -->
        <h2 th:if="${boards == null}">전체 게시판 게시글 목록 보기</h2>
        <a href="#" class="btn btn-primary">게시글 쓰기</a>
    </div>

 

모델이 설정되지 않을 경우에는 boards가 null이 된다는 사실~~~~!

728x90

'Project > anonymous board project' 카테고리의 다른 글

프로젝트 진행 중 발생한 어려움 및 고민거리  (0) 2024.01.12
Entity와 Dto  (1) 2024.01.09
익명 게시판 프로젝트  (0) 2024.01.08

BELATED ARTICLES

more