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
'BACKEND > Spring' 카테고리의 다른 글
게시판 만들기 2 - 게시글은 글쓴이만 수정 가능하게 (0) | 2023.11.02 |
---|---|
게시판 만들기 2 - 글 작성 후 작성했던 메뉴로 돌아가기 (0) | 2023.11.01 |
게시판 만들기 2 -게시판 제목 및 게시글 목록 (1) | 2023.11.01 |
게시판 만들기 2 - 이미지 업로드 설정 및 DB저장 (1) | 2023.10.31 |
게시판 만들기 2 - 글 작성하기(유효성검사) (0) | 2023.10.31 |