Notice
Recent Posts
Recent Comments
Link
«   2025/02   »
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
Tags
more
Archives
Today
Total
관리 메뉴

soozya

[FRONT, BACK] 글 상세보기 (Spring MyBatis) 본문

👩🏻‍💻프로젝트/👩🏻개인프로젝트

[FRONT, BACK] 글 상세보기 (Spring MyBatis)

soozya 2023. 9. 20. 00:22

[👩🏻‍💻소스코드]

 

[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메서드 넣기

 


[💻결과]