728x90
main.jsp
๊ธ ๋ชฉ๋ก์์ ์ ๋ชฉ ํด๋ฆญํ๋ฉด ํด๋น ๊ฒ์๊ธ์ ์์ธ ๋ณผ ์ ์๋ ํ์ด์ง๋ก ๋๊น
<tbody>
<%int i = 1; %>
<c:forEach items="${list}" var="obj">
<tr>
<td class="text-center d-none d-md-table-cell"> <%= i++ %></td><!--${obj.board_idx}์ด์๋ค๊ฐ ์์ -->
<td><a href="${root }/board/read?info_idx=${info_idx}&board_idx=${obj.board_idx}">${obj.title}</a></td>
<td class="text-center d-none d-md-table-cell">${obj.name}</td>
<td class="text-center d-none d-md-table-cell">${obj.regDate}</td>
</tr>
</c:forEach>
</tbody>

BoardController
@GetMapping("/read")
public String read(@RequestParam("info_idx") int info_idx, @RequestParam("board_idx") int board_idx,Model model) {
model.addAttribute("info_idx", info_idx);//๊ฒ์ํ ๋ฒํธ๋ ์ ์ง
//๊ธ๋ฒํธ๋ก db์์ ๊ฒ์๊ธ ์ฝ์ด์ค๊ธฐ
return "board/read";
}
sql์์ฑํ๊ธฐ ์ ์ ํ ์คํธํ๊ธฐ

boardMapper
<select id="getBoardDetail" parameterType="Integer" resultType="com.demo.domain.ContentVO" >
SELECT u.name,
DATE_FORMAT(regDate,'%y-%m-%d') AS regDate,
title,
content,
content_file
FROM board b
JOIN user u
ON b.writer_idx = u.user_idx
WHERE board_idx = #{board_idx}
</select>
ContentVO์์ ๋ณ์ ์ถ๊ฐ
package com.demo.domain;
public class ContentVO {
private int board_idx; //๊ธ๋ฒํธ
private String title; //์ ๋ชฉ
private String name; //์์ฑ์
private String regDate; //์์ฑ๋ ์ง
private String content; //๊ธ๋ด์ฉ
private String content_file; //์ด๋ฏธ์ง ํ์ผ ์ด๋ฆ
//๊ฒํฐ ์ธํฐ ์์ฑ
public int getBoard_idx() {
return board_idx;
}
public String getContent() {
return content;
}
public void setContent(String content) {
this.content = content;
}
public String getContent_file() {
return content_file;
}
public void setContent_file(String content_file) {
this.content_file = content_file;
}
public void setBoard_idx(int board_idx) {
this.board_idx = board_idx;
}
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getRegDate() {
return regDate;
}
public void setRegDate(String regDate) {
this.regDate = regDate;
}
}
BoardDAO
//๊ฒ์๊ธ ์์ธ๋ณด๊ธฐ
public ContentVO getContentDetail(int board_idx) {
return sqlTemplate.selectOne("board.getBoardDetail", board_idx);
}
BoardService
// ๊ฒ์๊ธ ์์ธ๋ณด๊ธฐ
public ContentVO getContentDetail(int board_idx) {
return boardDAO.getContentDetail(board_idx);
}
BoardController
@GetMapping("/read")
public String read(@RequestParam("info_idx") int info_idx, @RequestParam("board_idx") int board_idx,Model model) {
model.addAttribute("info_idx", info_idx);//๊ฒ์ํ ๋ฒํธ๋ ์ ์ง
//๊ธ๋ฒํธ๋ก db์์ ๊ฒ์๊ธ ์ฝ์ด์ค๊ธฐ
model.addAttribute("content", boardService.getContentDetail(board_idx));
return "board/read";
}
read.jsp
<div class="container" style="margin-top: 100px">
<div class="row">
<div class="col-sm-3"></div>
<div class="col-sm-6">
<div class="card shadow">
<div class="card-body">
<div class="form-group">
<label for="board_writer_name">์์ฑ์</label> <input type="text"
id="board_writer_name" name="board_writer_name"
class="form-control" value="${content.name}" disabled="disabled" />
</div>
<div class="form-group">
<label for="board_date">์์ฑ๋ ์ง</label> <input type="text"
id="board_date" name="board_date" class="form-control"
value="${content.regDate}" disabled="disabled" />
</div>
<div class="form-group">
<label for="board_subject">์ ๋ชฉ</label> <input type="text"
id="board_subject" name="board_subject" class="form-control"
value="${content.title}" disabled="disabled" />
</div>
<div class="form-group">
<label for="board_content">๋ด์ฉ</label>
<textarea id="board_content" name="board_content"
class="form-control" rows="10" style="resize: none"
disabled="disabled">${content.content}</textarea>
</div>
<c:if test="${content.content_file != null}">
<div class="form-group">
<label for="board_file">์ฒจ๋ถ ์ด๋ฏธ์ง</label> <img
src="${root}/upload/${content.content_file}" width="100%" />
</div>
</c:if>
<div class="form-group">
<div class="text-right">
<a href="${root}/board/main" class="btn btn-primary">๋ชฉ๋ก๋ณด๊ธฐ</a> <a
href="${root}/board/modify" class="btn btn-info">์์ ํ๊ธฐ</a> <a
href="${root}/board/delete" class="btn btn-danger">์ญ์ ํ๊ธฐ</a>
</div>
</div>
</div>
</div>
</div>
<div class="col-sm-3"></div>
</div>
</div>
ํ ์คํธํ๊ธฐ

๋ชฉ๋ก๋ณด๊ธฐ ํด๋ฆญํ๋ฉด
<a href="${root}/board/main?info_idx=${info_idx}" class="btn btn-primary">๋ชฉ๋ก๋ณด๊ธฐ</a> <a

728x90