본문 바로가기
카테고리 없음

24. 10. 23 semiProject 스프링 정리

by 융기융 2024. 10. 23.
반응형

오늘 내가 구현시킨 기능은 점심메뉴추천에서 글쓰기버튼을 눌렀을때 내용들을 출력시키는 코드였다.

@GetMapping("boardMain")

public String boardMain(

Model model) {

 

List<Board> boardList = service.boardMain();

 

 

model.addAttribute("boardList", boardList);

 

 

 

return "/board/boardMain";

}

 

List<Board> boardList = sevice.boardMain();

boardMain 메서드를 List<Board>로 묶어야, 등록한 글들이 다 출력될 수 있다.

 

@PostMapping("writeToMain")

public String boardWrite(

@ModelAttribute Board inputBoard,

// @SessionAttribute("loginMember") Member loginMember,

@RequestParam("boardImage") MultipartFile boardImage,

RedirectAttributes ra

) {

 

 

// 1) 작성자 회원번호를 inputBoard에 세팅

// inputBoard.setMemberNo(loginMember.getMemberNo());

inputBoard.setMemberNo(1);

 

// 2) 서비스 호출 후 결과(작성된 게시글 번호) 반환받기

int boardNo = service.boardWrite(inputBoard, boardImage);

 

 

// 3) 서비스 호출 후 결과(작성된 게시글 번호) 반환받기

 

 

return "redirect:boardMain";

}

PostMapping에서 writeToMain 은 html에 해당 from 코드에 적어놓은 action이고

 

return "redirect:boardMain"; -> 클쓰기버튼을 눌렀을 때 다시 boardMain 페이지로 돌아올 수 있게 하는것

원래는 board/writeToMain 으로하는 엄청난 잘못을 했다 ㅠ

 

sql문

<!-- 화면출력 -->

<select id="boardMain" resultType="Board">

SELECT

*

FROM

"BOARD"

ORDER BY BOARD_NO DESC

</select>

 화면출력을 하는데 SELECT*FROM 에 WHERE에 boardNo = 1 로 했어서 한개밖에 출력이안됐다. ㅠㅠ

 

<div class="post-container">
        <div class="post" th:each="board : ${boardList}">
            <div class="post-header">
                <div class="profile-pic"></div>
                <div class="post-title" th:text="${board.boardTitle}">제목</div>
                <div class="post-time">이름 | 21분 전</div>
            </div>
            <br>
            <hr>
            <div class="post-content">
              <div th:if="${board.boardImg}">
                  <img th:src="${board.boardImg}" alt="게시글이미지"
                  class="imageSize">
                </div>
                <div class="contentCss">
                  <th:block  th:text="${board.boardContent}" class="contentCss">본문 내용</th:block>
                </div>
            </div>
           
            <div class="post-footer">
                <span class="comment-toggle">
                    <div class="triangle"></div> 댓글 보기
              </span>
            </div>
          </div>
        </div>
        <!-- 글쓰기 버튼 -->
        <div>
          <button id="pageChange" class="writeBtn">글쓰기</button>
        </div>

 

th:each="board : ${boardList}" 이치문으로 내용들을 다 반복할 수 있게한다 -> 글이 하나만조회되는게아니고 모두 조회 가능

<div>th:if="${board.boardImg}"

<img th:src="${board.boardImg}" 

</div>

로 작성해야 사진을 불러올 수 있다.

반응형