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>
<%
}
%>
이렇게 게시판을 만들어서 글을 만들고, 수정하고, 삭제하는 기능을 만들었다.