JSP

12.02.(금) JSP(13): 게시판 만들기(2)

콜라든포비 2022. 12. 5. 23:26

게시판 홈페이지

boardEdit.jsp

<%@page import="com.multi.app.board.BoardDTO"%>
<%@page import="com.multi.app.board.BoardDAO"%>
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<% request.setCharacterEncoding("UTF-8"); %>
<%
	int postno = Integer.parseInt(request.getParameter("postno"));

	BoardDAO dao = new BoardDAO();
	BoardDTO dto = dao.boardSelectOne(postno, 2);
%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Edit Post</title>
<style>
	ul,li{
		padding:0;
		margin:0;
		list-style-type:none;
	}
	.container{
		width:1000px;
		margin:0 auto;
	}
	#subject{
		width:700px;
	}
	#content{
		width:100%;
		height:200px;
	}
</style>
<script>
	// 수정된 사항이 있는지 확인하는 함수
	function boardEditCheck(){
		if(document.getElementById("subject").value==""){
			alert("Title is empty");
			return false;
		}
		if(document.getElementById("content").value==""){
			alert("Content is empty");
			return false;
		}
		return true;
	}
</script>
</head>
<body>
	<div class="container">
		<h1>Edit post</h1>
		<form method="post" action="/webApp/board/boardEditOk.jsp" id="editForm" onsubmit="return boardEditCheck()">
			<input type="hidden" name="postno" value="<%= dto.getPostno() %>">	<!-- 수정 대상의 데이터중 postno로 식별 -->
			<ul>
				<li>Author : <input type="text" name="username" id="username" value="<%= dto.getUsername() %>" readonly></li>
				<li>Title : <input type="text" name="subject" id="subject" value="<%= dto.getSubject() %>"></li>
				<li>Content<br>
					<textarea name="content" id="content"><%= dto.getContent() %></textarea></li>
				<li><input type="submit" value="Post"></li>
			</ul>
		</form>
	</div>
	<div>
		<a href="/webApp/">Home</a>
		<a href="/webApp/board/boardList.jsp">List</a>
	</div>
</body>
</html>

boardEditOk.jsp

<%@page import="com.multi.app.board.BoardDAO"%>
<%@page import="com.multi.app.board.BoardDTO"%>
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<% request.setCharacterEncoding("UTF-8"); %>
<!-- 
	수정성공 글 내용보기
	수정실패 글 수정 페이지 이동
 -->
<%
	BoardDTO dto = new BoardDTO();
	dto.setPostno(Integer.parseInt(request.getParameter("postno")));
	dto.setSubject(request.getParameter("subject"));
	dto.setContent(request.getParameter("content"));
%>

<jsp:useBean id="dto2" class="com.multi.app.board.BoardDTO" scope="page"></jsp:useBean>
<jsp:setProperty name="dto2" property="*"></jsp:setProperty>

<%
	BoardDAO dao = new BoardDAO();
	int result = dao.boardEdit(dto2);
	
	if(result>0){	// 수정성공 시 해당 postno 받아서 내용보기
		response.sendRedirect("/webApp/board/boardView.jsp?postno=" + dto.getPostno() + "&part=2");
	}else{	// 수정실패 시 글 수정 페이지 이동
		%>
		<script>
			alert("Failed to edit post.");
			history.back();
		</script>
		<%	
	}
%>

수정하고나서 다시 boardView.jsp로 이동할때 part=2를 보내줘서 조회수가 올라가지 않도록 설정했다.

boardDel.jsp

<%@page import="com.multi.app.board.BoardDAO"%>
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<% request.setCharacterEncoding("UTF-8"); %>
<%
	// 삭제할 글의 postno를 request
	int postno = Integer.parseInt(request.getParameter("postno"));

	BoardDAO dao = new BoardDAO();
	
	int result = dao.boardDel(postno);
	
	if(result>0){
		response.sendRedirect("/webApp/board/boardList.jsp");
	}else{
		%>
		<script>
			alert("Failed to delete post.");
			history.back();
		</script>
		<%
	}
%>

이렇게 게시판을 만들어서 글을 만들고, 수정하고, 삭제하는 기능을 만들었다.