728x90
날짜 포멧 변경
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ 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">
<title>center/notice.jsp</title>
<link href="${pageContext.request.contextPath}/resources/css/default.css" rel="stylesheet" type="text/css">
<link href="${pageContext.request.contextPath}/resources/css/subpage.css" rel="stylesheet" type="text/css">
<!--[if lt IE 9]>
<script src="http://ie7-js.googlecode.com/svn/version/2.1(beta4)/IE9.js" type="text/javascript"></script>
<script src="http://ie7-js.googlecode.com/svn/version/2.1(beta4)/ie7-squish.js" type="text/javascript"></script>
<script src="http://html5shim.googlecode.com/svn/trunk/html5.js" type="text/javascript"></script>
<![endif]-->
<!--[if IE 6]>
<script src="../script/DD_belatedPNG_0.0.8a.js"></script>
<script>
/* EXAMPLE */
DD_belatedPNG.fix('#wrap');
DD_belatedPNG.fix('#main_img');
</script>
<![endif]-->
</head>
<body>
<div id="wrap">
<!-- 헤더들어가는 곳 -->
<jsp:include page="../inc/top.jsp" />
<!-- 헤더들어가는 곳 -->
<!-- 본문들어가는 곳 -->
<!-- 메인이미지 -->
<div id="sub_img_center"></div>
<!-- 메인이미지 -->
<!-- 왼쪽메뉴 -->
<nav id="sub_menu">
<ul>
<li><a href="#">Notice</a></li>
<li><a href="#">Public News</a></li>
<li><a href="#">Driver Download</a></li>
<li><a href="#">Service Policy</a></li>
</ul>
</nav>
<!-- 왼쪽메뉴 -->
<!-- 게시판 -->
<article>
<h1>Notice</h1>
<table id="notice">
<tr><th class="tno">No.</th>
<th class="ttitle">Title</th>
<th class="twrite">Writer</th>
<th class="tdate">Date</th>
<th class="tread">Read</th></tr>
<c:forEach var="boardDTO" items="${boardList}">
<tr><td>${boardDTO.num}</td>
<td class="left">${boardDTO.subject}</td>
<td>${boardDTO.name}</td>
<td><fmt:formatDate value="${boardDTO.date}" pattern="yyyy-MM-dd"/></td>
<td>${boardDTO.readcount}</td></tr>
</c:forEach>
</table>
<!-- 로그인을 하지 않으면 글쓰기 버튼이 보이지 않게 설정 -->
<c:if test="${!empty sessionScope.id }">
<div id="table_search">
<!-- location 자바스크립트 내장 객체 => 웹 브라우저 주소줄을 객체로 정의
location 내장객체 멤버 변수 => href 변수 : 웹 브라우저 주소줄 내용을 저장하고 있는 변수
=> href 변수 내용이 변경되어지면 웹 브라우저 주소도 변경
location.href='${pageContext.request.contextPath}/board/write -->
<input type="button" value="글쓰기" class="btn" onclick="location.href='${pageContext.request.contextPath}/board/write'">
</div>
</c:if>
<div id="table_search">
<input type="text" name="search" class="input_box">
<input type="button" value="search" class="btn">
</div>
<div class="clear"></div>
<div id="page_control">
<a href="#">Prev</a>
<a href="#">1</a><a href="#">2</a><a href="#">3</a>
<a href="#">4</a><a href="#">5</a><a href="#">6</a>
<a href="#">7</a><a href="#">8</a><a href="#">9</a>
<a href="#">10</a>
<a href="#">Next</a>
</div>
</article>
<!-- 게시판 -->
<!-- 본문들어가는 곳 -->
<div class="clear"></div>
<!-- 푸터들어가는 곳 -->
<jsp:include page="../inc/bottom.jsp" />
<!-- 푸터들어가는 곳 -->
</div>
</body>
</html>
//BoardController
@GetMapping("/list")
public String list(HttpServletRequest request, PageDTO pageDTO, Model model) {
System.out.println("BoardController list()");
// 한 화면에 보여줄 글의 개수 설정
int pageSize = 15;
// pageNum에 파라미터 값을 가져오기
String pageNum = request.getParameter("pageNum"); //request에서 값을 받아옴
// pageNum값이 없으면 1로 설정
if(pageNum == null) {
pageNum = "1";
}
//pageNum => 정수형 변경
int currentPage = Integer.parseInt(pageNum);
//pageDTO에 저장
pageDTO.setPageSize(pageSize);
pageDTO.setPageNum(pageNum);
pageDTO.setCurrentPage(currentPage);
List<BoardDTO> boardList = boardService.getBoardList(pageDTO);
//페이징 작업
//전체 글의 개수 구하기 int count = getBoardCount()
int count = boardService.getBoardCount();
//한 화면에 보여줄 페이지 개수 설정
int pageBlock = 10;
//한 화면에 보여줄 시작 페이지 구하기
//1~10 => 1, 11~20 => 11,..
int startPage = (currentPage-1)/pageBlock*pageBlock+1;
//한 화면에 보여줄 끝 페이지 구하기
int endPage = startPage + pageBlock -1;
//전체 페이지 개수 구하기
int pageCount = count / pageSize + (count%pageSize == 0 ? 0 : 1);
if(endPage > pageCount) {
endPage = pageCount; //끝 페이지, 전체 페이지 수를 비교해서 => 끝 페이지가 크면 전체 페이지 수로 끝 페이지 변경
}
//pageDTO 저장
pageDTO.setCount(count); //[전체 글의 개수 ${pageDTO.count }]
pageDTO.setPageBlock(pageBlock);
pageDTO.setStartPage(startPage);
pageDTO.setEndPage(endPage);
pageDTO.setPageCount(pageCount);
//model 저장
model.addAttribute("pageDTO", pageDTO);
model.addAttribute("boardList", boardList);
// center/notice.jsp 주소변경없이 이동
return "center/notice";
}
notice.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ 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">
<title>center/notice.jsp</title>
<link href="${pageContext.request.contextPath}/resources/css/default.css" rel="stylesheet" type="text/css">
<link href="${pageContext.request.contextPath}/resources/css/subpage.css" rel="stylesheet" type="text/css">
<!--[if lt IE 9]>
<script src="http://ie7-js.googlecode.com/svn/version/2.1(beta4)/IE9.js" type="text/javascript"></script>
<script src="http://ie7-js.googlecode.com/svn/version/2.1(beta4)/ie7-squish.js" type="text/javascript"></script>
<script src="http://html5shim.googlecode.com/svn/trunk/html5.js" type="text/javascript"></script>
<![endif]-->
<!--[if IE 6]>
<script src="../script/DD_belatedPNG_0.0.8a.js"></script>
<script>
/* EXAMPLE */
DD_belatedPNG.fix('#wrap');
DD_belatedPNG.fix('#main_img');
</script>
<![endif]-->
</head>
<body>
<div id="wrap">
<!-- 헤더들어가는 곳 -->
<jsp:include page="../inc/top.jsp" />
<!-- 헤더들어가는 곳 -->
<!-- 본문들어가는 곳 -->
<!-- 메인이미지 -->
<div id="sub_img_center"></div>
<!-- 메인이미지 -->
<!-- 왼쪽메뉴 -->
<nav id="sub_menu">
<ul>
<li><a href="#">Notice</a></li>
<li><a href="#">Public News</a></li>
<li><a href="#">Driver Download</a></li>
<li><a href="#">Service Policy</a></li>
</ul>
</nav>
<!-- 왼쪽메뉴 -->
<!-- 게시판 -->
<article>
<h1>Notice [전체 글의 개수 ${pageDTO.count }]</h1>
<table id="notice">
<tr><th class="tno">No.</th>
<th class="ttitle">Title</th>
<th class="twrite">Writer</th>
<th class="tdate">Date</th>
<th class="tread">Read</th></tr>
<c:forEach var="boardDTO" items="${boardList}">
<tr><td>${boardDTO.num}</td>
<td class="left">${boardDTO.subject}</td>
<td>${boardDTO.name}</td>
<td><fmt:formatDate value="${boardDTO.date}" pattern="yyyy-MM-dd"/></td>
<td>${boardDTO.readcount}</td></tr>
</c:forEach>
</table>
<!-- 로그인을 하지 않으면 글쓰기 버튼이 보이지 않게 설정 -->
<c:if test="${!empty sessionScope.id }">
<div id="table_search">
<!-- location 자바스크립트 내장 객체 => 웹 브라우저 주소줄을 객체로 정의
location 내장객체 멤버 변수 => href 변수 : 웹 브라우저 주소줄 내용을 저장하고 있는 변수
=> href 변수 내용이 변경되어지면 웹 브라우저 주소도 변경
location.href='${pageContext.request.contextPath}/board/write -->
<input type="button" value="글쓰기" class="btn" onclick="location.href='${pageContext.request.contextPath}/board/write'">
</div>
</c:if>
<div id="table_search">
<input type="text" name="search" class="input_box">
<input type="button" value="search" class="btn">
</div>
<div class="clear"></div>
<div id="page_control">
<c:if test="${pageDTO.startPage > pageDTO.pageBlock }">
<a href="${pageContext.request.contextPath}/board/list?pageNum=${pageDTO.startPage - pageDTO.pageBlock}">Prev</a>
</c:if>
<c:forEach var="i" begin="${pageDTO.startPage }" end="${pageDTO.endPage }" step="1">
<a href="${pageContext.request.contextPath}/board/list?pageNum=${i}">${i}</a>
</c:forEach>
<c:if test="${pageDTO.endPage < pageDTO.pageCount}">
<a href="${pageContext.request.contextPath}/board/list?pageNum=${pageDTO.startPage + pageDTO.pageBlock}">Next</a>
</c:if>
</div>
</article>
<!-- 게시판 -->
<!-- 본문들어가는 곳 -->
<div class="clear"></div>
<!-- 푸터들어가는 곳 -->
<jsp:include page="../inc/bottom.jsp" />
<!-- 푸터들어가는 곳 -->
</div>
</body>
</html>
content.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>center/content.jsp</title>
<link href="${pageContext.request.contextPath}/resources/css/default.css" rel="stylesheet" type="text/css">
<link href="${pageContext.request.contextPath}/resources/css/subpage.css" rel="stylesheet" type="text/css">
<!--[if lt IE 9]>
<script src="http://ie7-js.googlecode.com/svn/version/2.1(beta4)/IE9.js" type="text/javascript"></script>
<script src="http://ie7-js.googlecode.com/svn/version/2.1(beta4)/ie7-squish.js" type="text/javascript"></script>
<script src="http://html5shim.googlecode.com/svn/trunk/html5.js" type="text/javascript"></script>
<![endif]-->
<!--[if IE 6]>
<script src="../script/DD_belatedPNG_0.0.8a.js"></script>
<script>
/* EXAMPLE */
DD_belatedPNG.fix('#wrap');
DD_belatedPNG.fix('#main_img');
</script>
<![endif]-->
</head>
<body>
<div id="wrap">
<!-- 헤더들어가는 곳 -->
<jsp:include page="../inc/top.jsp" />
<!-- 헤더들어가는 곳 -->
<!-- 본문들어가는 곳 -->
<!-- 메인이미지 -->
<div id="sub_img_center"></div>
<!-- 메인이미지 -->
<!-- 왼쪽메뉴 -->
<nav id="sub_menu">
<ul>
<li><a href="#">Notice</a></li>
<li><a href="#">Public News</a></li>
<li><a href="#">Driver Download</a></li>
<li><a href="#">Service Policy</a></li>
</ul>
</nav>
<!-- 왼쪽메뉴 -->
<!-- 게시판 -->
<article>
<h1>Content Notice</h1>
<table id="notice">
<tr><td>글번호</td><td>${boardDTO.num}</td></tr>
<tr><td>글쓴이</td><td>${boardDTO.name}</td></tr>
<tr><td>조회수</td><td>${boardDTO.readcount}</td></tr>
<tr><td>작성일</td><td>${boardDTO.date}</td></tr>
<tr><td>글제목</td><td>${boardDTO.subject}</td></tr>
<tr><td>글내용</td><td>${boardDTO.content}</td></tr>
</table>
<div id="table_search">
<input type="button" value="글목록" class="btn" onclick="location.href='${pageContext.request.contextPath}/board/list'">
</div>
<div class="clear"></div>
</article>
<!-- 게시판 -->
<!-- 본문들어가는 곳 -->
<div class="clear"></div>
<!-- 푸터들어가는 곳 -->
<jsp:include page="../inc/bottom.jsp" />
<!-- 푸터들어가는 곳 -->
</div>
</body>
</html>
//BoardController
@GetMapping("/content")
public String content(BoardDTO boardDTO, Model model) {
System.out.println("BoardController content()");
System.out.println(boardDTO);
//boardDTO 리턴할형 = boardService.getBoard(boardDTO) 메소드 호출
boardDTO = boardService.getBoard(boardDTO);
//model 저장
model.addAttribute("boardDTO", boardDTO);
// board/content.jsp 글 목록으로 주소변경없이 이동
return "/center/content";
}
//BoardService
public BoardDTO getBoard(BoardDTO boardDTO) {
System.out.println("BoardService getBoard()");
return boardDAO.getBoard(boardDTO);
}
//BoardDTO
public BoardDTO getBoard(BoardDTO boardDTO) {
System.out.println("BoardDAO getBoard()");
return sqlSession.selectOne(namespace+".getBoard", boardDTO);
}
//boardMapper
<select id="getBoard" resultType="com.itwillbs.domain.BoardDTO">
select *
from board
where num = #{num}
</select>
조회수 처리
//BoardController
@GetMapping("/content")
public String content(BoardDTO boardDTO, Model model) {
System.out.println("BoardController content()");
System.out.println(boardDTO);
//boardDTO 리턴할형 = boardService.getBoard(boardDTO) 메소드 호출
boardDTO = boardService.getBoard(boardDTO);
//조회수 증가
boardService.updateReadcount(boardDTO);
//model 저장
model.addAttribute("boardDTO", boardDTO);
// board/content.jsp 글 목록으로 주소변경없이 이동
return "/center/content";
}
//BoardService
public void updateReadcount(BoardDTO boardDTO) {
System.out.println("BoardService updateReadcount()");
int readcount = boardDTO.getReadcount()+1;
boardDTO.setReadcount(readcount);
boardDAO.updateReadcount(boardDTO);
}
//BoardDAO
public void updateReadcount(BoardDTO boardDTO) {
System.out.println("BoardDAO updateReadcount()");
sqlSession.update(namespace+".updateReadcount", boardDTO);
}
//boardMapper
<update id="updateReadcount">
update board
set readcount = #{readcount}
where num = #{num}
</update>
글 수정, 글 삭제
content.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>center/content.jsp</title>
<link href="${pageContext.request.contextPath}/resources/css/default.css" rel="stylesheet" type="text/css">
<link href="${pageContext.request.contextPath}/resources/css/subpage.css" rel="stylesheet" type="text/css">
<!--[if lt IE 9]>
<script src="http://ie7-js.googlecode.com/svn/version/2.1(beta4)/IE9.js" type="text/javascript"></script>
<script src="http://ie7-js.googlecode.com/svn/version/2.1(beta4)/ie7-squish.js" type="text/javascript"></script>
<script src="http://html5shim.googlecode.com/svn/trunk/html5.js" type="text/javascript"></script>
<![endif]-->
<!--[if IE 6]>
<script src="../script/DD_belatedPNG_0.0.8a.js"></script>
<script>
/* EXAMPLE */
DD_belatedPNG.fix('#wrap');
DD_belatedPNG.fix('#main_img');
</script>
<![endif]-->
</head>
<body>
<div id="wrap">
<!-- 헤더들어가는 곳 -->
<jsp:include page="../inc/top.jsp" />
<!-- 헤더들어가는 곳 -->
<!-- 본문들어가는 곳 -->
<!-- 메인이미지 -->
<div id="sub_img_center"></div>
<!-- 메인이미지 -->
<!-- 왼쪽메뉴 -->
<nav id="sub_menu">
<ul>
<li><a href="#">Notice</a></li>
<li><a href="#">Public News</a></li>
<li><a href="#">Driver Download</a></li>
<li><a href="#">Service Policy</a></li>
</ul>
</nav>
<!-- 왼쪽메뉴 -->
<!-- 게시판 -->
<article>
<h1>Content Notice</h1>
<table id="notice">
<tr><td>글번호</td><td>${boardDTO.num}</td></tr>
<tr><td>글쓴이</td><td>${boardDTO.name}</td></tr>
<tr><td>조회수</td><td>${boardDTO.readcount}</td></tr>
<tr><td>작성일</td><td>${boardDTO.date}</td></tr>
<tr><td>글제목</td><td>${boardDTO.subject}</td></tr>
<tr><td>글내용</td><td>${boardDTO.content}</td></tr>
</table>
<div id="table_search">
<c:if test="${! empty sessionScope.id }">
<c:if test="${sessionScope.id eq boardDTO.name }">
<input type="button" value="글수정" class="btn" onclick="location.href='${pageContext.request.contextPath}/board/update$num=${boardDTO.num}'">
<input type="button" value="글삭제" class="btn" onclick="location.href='${pageContext.request.contextPath}/board/delete$num=${boardDTO.num}'">
</c:if>
</c:if>
<input type="button" value="글목록" class="btn" onclick="location.href='${pageContext.request.contextPath}/board/list'">
</div>
<div class="clear"></div>
</article>
<!-- 게시판 -->
<!-- 본문들어가는 곳 -->
<div class="clear"></div>
<!-- 푸터들어가는 곳 -->
<jsp:include page="../inc/bottom.jsp" />
<!-- 푸터들어가는 곳 -->
</div>
</body>
</html>
728x90
'KDT > WEB' 카테고리의 다른 글
240219 WEB - 파일 업로드2, 갤러리 게시판, AJAX를 이용한 중복확인 (0) | 2024.02.19 |
---|---|
240215 WEB - 글 수정, 삭제, 파일 업로드 1 (0) | 2024.02.15 |
240208 WEB(펀웹4(board)) (0) | 2024.02.08 |
240206 WEB(펍웹3, GitHub) (0) | 2024.02.06 |
240205 WEB(펀웹2) (0) | 2024.02.05 |