[Springboot] 게시판 프로젝트-4

조히고닝·2023년 4월 5일
0

점프 투 스프링부트를 보고 게시판을 따라 만드는 프로젝트이다.

3-15의 추가기능을 모두 구현하는 것을 목표로 한다.

Github : Joyfulgwon🕺

마이페이지로 접속 할 링크를 만들어 줌.

💡 마이페이지에서 정보 및 최근에 단 질문 최근 답변 조회 가능하게 구현해야한다.
---생략---
<li class="nav-item float-end">
                    <a class="nav-link" sec:authorize="isAuthenticated()" th:href="@{/question/list/myQuestion}">내 질문</a>
                </li>
                <li class="nav-item float-end">
                    <a class="nav-link" sec:authorize="isAuthenticated()" th:href="@{/answer/list/myAnswer}">내 답변</a>
                </li>
            </ul>
            <li sec:authorize="isAuthenticated()">
                <a th:href="@{|/user/mypage/${}|}">
                    <span sec:authentication="principal.username"></span>
                </a>님 환영합니다.
            </li>

네비게이션 바 :

Untitled

마이페이지 템플릿을 만들어서 한번에 보여주는 것보다는 백엔드 기능개발 공부가 목적이라서 아직 마이페이지를 만들진 않았음.

  • 네비게이션 바에 내 질문 페이지와 내 답변 페이지, 그리고 로그인 정보에서 유저이름을 가져와서 누르면 마이페이지로 연결되게 링크만 만들어 두었음.

QuestionController

list/myquestion 도메인에 매핑. principal 객체에서 현 사용자 이름 받아와서 유저 서비스에 요청.

유저 객체 받아오고 그 유저가 작성한 질문 검색.

@PreAuthorize("isAuthenticated()")
    @GetMapping("list/myQuestion")
    public String getMyList(Model model, Principal principal, @RequestParam(value="page",defaultValue = "0")int page){
        String username = principal.getName();
        SiteUser user = this.userService.getUser(username);
        Page<Question> myQuestion =this.questionService.getMyQuestion(page,user);
        model.addAttribute("paging",myQuestion);
        return"myQuestion_List";
    }

QuestionService

사용자와 페이지를 받아서 열개씩 한페이지에 뿌려줌.

public Page<Question> getMyQuestion(int page ,SiteUser author){
        Pageable pageable = PageRequest.of(page,10);
        Page<Question> MyQuestionList =this.questionRepository.findByAuthor(author,pageable);
        return MyQuestionList;
    }

QuestionRepository

작성자를 기준으로 검색할 수 있는 findByAuthor 생성

Page<Question> findByAuthor (SiteUser author, Pageable pageable);

답변도 같은 로직으로 처리해서 뿌려줌.

질문과 답변 내용 보여줄 수 있도록 테이블 약간 수정.

0개의 댓글