soozya
[FRONT, BACK] 글 상세보기 (Spring MyBatis) 본문
[👩🏻💻소스코드]
[FRONT]
더보기
[view.jsp]
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8" import="java.util.*, java.sql.*,Board.*"%>
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%>
<!doctype html>
<html>
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>::함께 여행::</title>
<link href="css/other.css" rel="stylesheet">
<link href="css/bootstrap.min.css" rel="stylesheet">
<script type="text/javascript" src="https://code.jquery.com/jquery-3.3.1.min.js"></script>
<script src="js/bootstrap.min.js"></script>
</head>
<body>
<div class="left_title"><a href="main.jsp">함께 여행</a></div>
<p>
<h2 class="com1 text-center"><a href="list.do"><b>커뮤니티</b></a></h2>
<p> <hr>
<div class="view">
<table class="table view_tb">
<tr>
<td class="col-md-1 text-center"> <b>제목</b></td>
<td class="col-md-6 text-left"><b>${data.title}</b></td>
<td class="col-md-1 text-center"> <b>조회수</b></td>
<td class="col-md-1 text-left">${data.readc}</td>
</tr>
<tr>
<td class="col-md-1 text-center"> <b>작성자</b></td>
<td class="col-md-4 text-left">닉네임</td>
<td class="col-md-1 text-center"> <b>작성일</b></td>
<td class="col-md-2 text-left">
<fmt:formatDate value="${data.cdate}" timeStyle="medium" pattern="yyyy-MM-dd" />
</td>
</tr>
<tr>
<td class="col-md-1 text-center"> <b>글 내용</b> </td>
<td class="col-md-8" colspan="3" style="white-space:pre">${data.content} </td>
</tr>
</table>
<button type="submit" class="btn btn-default delete_bt"
onclick="location.href='delete.do?num=${data.num}'">삭제</button>
<button type="submit" class="btn btn-primary update_bt"
onclick="location.href='updateform.do?num=${data.num}'">글 수정</button>
</div>
<button type="submit" class="btn btn-secondary com_list"
onclick="location.href='list.do'">글 목록</button>
<jsp:include page="footer.jsp" />
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.2/jquery.min.js"></script>
<script src="js/bootstrap.min.js"></script>
</body>
</html>
[BACK]
더보기
[tripboard.xml]
<!-- 4. 글 상세보기시 조회수 증가 -->
<update id="viewReadcnt" parameterType="String">
update tripboard set readc=readc+1 where num=#{num}
</update>
<!-- 5. 글 상세보기 -->
<select id="view" parameterType="String" resultType="board">
select * from tripboard where num=#{num}
</select>
[SqlMapBoardDAO.java]
public class SqlMapBoardDAO extends SqlSessionDaoSupport implements BoardDAO {
@Override
public void viewReadcnt(String num) throws DataAccessException{
//조회수 증가update : .update("id",전달할 매개변수)
getSqlSession().update("viewReadcnt",num);
}
@Override
public BoardCommand view (String num)throws DataAccessException{
return (BoardCommand)getSqlSession().selectOne("view",num);
}
[BoardDAO.java]
public interface BoardDAO {
//4.글 상세보기 시 조회수 증가
public void viewReadcnt(String num) throws DataAccessException;
//5.글 상세보기
public BoardCommand view (String num)throws DataAccessException;
[ViewAction.java]
package Board;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.mvc.Controller;
public class ViewAction implements Controller {
BoardDAO dao;
public void setDao (BoardDAO dao) {
this.dao = dao;
System.out.println("ViewAction setDao() 호출:" +dao);
}
@Override
public ModelAndView handleRequest(HttpServletRequest request,
HttpServletResponse response) throws Exception {
// TODO Auto-generated method stub
System.out.println("ViewAction의 HandlerRequest() 자동 호출 됨!");
String num=request.getParameter("num");
dao.viewReadcnt(num); //조회수 먼저 증가 시키려고..
BoardCommand data=dao.view(num);
ModelAndView mav=new ModelAndView("view");
mav.addObject("data",data);
return mav;
}
}
[💬설명]
1️⃣ tripboard.xml
2️⃣ SqlMapBoardDAO.java
# 인터페이스(BoardDAO) 구현을 위해 implements 사용함
# selectOne : 레코드 한 개만 가져올 때
3️⃣ BoardDAO.java
# DataAccessException : spring전용 예외처리 클래스로, try ~ catch 생략 가능함
4️⃣ ViewAction.java
# 조회수 먼저 증가시킬라고 dao.viewReadcnt를 불러왔음..
그리고 나서 datad에 view메서드 넣기
[💻결과]
'👩🏻💻프로젝트 > 👩🏻개인프로젝트' 카테고리의 다른 글
[React] Git과 연결하기 (0) | 2023.11.07 |
---|---|
[BACK] 글 삭제하기 (Spring MyBatis) (0) | 2023.09.20 |
[FRONT, BACK] 글 쓰기 (Spring MyBatis) (0) | 2023.09.19 |
[FRONT, BACK] 글 목록보기 (Spring MyBatis) (0) | 2023.09.19 |
[SPRING MyBatis] 게시판 만들기 기본 설정 (0) | 2023.09.15 |