Notice
Recent Posts
Recent Comments
Link
«   2025/05   »
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
Tags
more
Archives
Today
Total
관리 메뉴

게으른 완벽주의자의 개발자 도전기

[board] 게시글 상세페이지 (th:object, th:field) 본문

Spring Boot

[board] 게시글 상세페이지 (th:object, th:field)

머리방울 2022. 9. 19. 20:50

1. mapper / service

<select id="boardDetail" resultMap="board">

SELECT BOARD_NUM 
	 , TITLE
	 , MEMBER_ID	
	 , CONTENT
	 , CREATE_DATE
FROM BOARD
WHERE BOARD_NUM = #{boardNum}

</select>


@Override
public BoardVO boardDetail(int boardNum) {
		
	return sqlSession.selectOne("boardMapper.boardDetail", boardNum);
}

 

2. controller

board_list.html에서 아래와 같이 제목을 클릭했을때 controller로 이동하도록 설정함
<td><a th:href="@{/board/boardDetail(boardNum=${board.boardNum})}"
	th:text="${board.title}"></a>
</td>



글 상세페이지로 이동
@GetMapping("/boardDetail")
public String boardDetail(int boardNum, Model model) {
		
	model.addAttribute("boardDetail", boardService.boardDetail(boardNum));
		
	return "content/boardDetail";
}

3. boardDetail.html

<div layout:fragment ="content" th:object="${boardDetail}">
		<div class="row justify-content-center">
			<div class="col-6">
				<div class="mb-3">
					<label for="formGroupExampleInput" class="form-label">글번호</label> 
					<input type="text" class="form-control" id="formGroupExampleInput" th:field="*{boardNum}" readonly>

						<label for="formGroupExampleInput" class="form-label">작성일</label>
						<input type="text" class="form-control" id="formGroupExampleInput"
							th:field="*{createDate}" readonly> 
						<label for="formGroupExampleInput" class="form-label">작성자</label> 
						<input type="text" class="form-control" id="formGroupExampleInput"
							readonly th:value="${session.loginInfo.memberName}"> 
						<label for="formGroupExampleInput" class="form-label">제목</label>
						<input type="text" class="form-control" id="formGroupExampleInput" th:field="*{title}" readonly>
		
					</div>

					<label for="formGroupExampleInput" class="form-label">내용</label>
				<div class="form-floating">
					<textarea class="form-control" placeholder="내용을 입력하세요"
						id="floatingTextarea2" style="height: 300px" th:field="*{content}" readonly></textarea>
				
				</div>

				<div class="row">
					<div class="col text-center">
						<button type="button" class="btn btn-outline-info" th:onclick="|location.href = '@{/board/list}'|"> 뒤로가기 </button>
						<button type="button" class="btn btn-outline-info" th:onclick="|location.href = '@{/board/updatePage(boardNum=${boardDetail.boardNum})}'|">수정하기</button>
						<button type="button" class="btn btn-outline-info" th:onclick="|location.href = '@{/board/deleteBoard(boardNum=${boardDetail.boardNum})}'|">삭제하기</button>
					</div>
				</div>
			</div>
		</div>
</div>