스프링 게시판 등록 - seupeuling gesipan deunglog

게시판 글쓰기 기능

글 등록하기

reviewController.java

// 게시판 글쓰기 기능
	@GetMapping("/write")
	public String writeform() throws Exception{
		return "/writeform";
	}
	@PostMapping("insert")
	public String insertreview(reviewVo reviewvo) throws Exception{
		boolean result = reviewservice.insertreview(reviewvo);
		if (result) {
			return "success";
		} else {
			return "error";
		}
	}

reviewMapper.xml

	<!-- 게시판 글쓰기 기능 -->
	<insert id="insertreview">
		insert into reviewTable(reTitle, reContent, reUser)  values(#{reTitle}, #{reContent}, #{reUser})
	</insert>

reviewmapper.java

	// 문의 글 쓰기
	public boolean insertreview(reviewVo reviewvo) throws Exception;

reviewService.java

	// 게시글 작성 
	public boolean insertreview(reviewVo reviewvo) throws Exception {
		return reviewmapper.insertreview(reviewvo);
	}

writeform.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
** 글쓰기 **
<form action="insert" method="post">
글제목: <input type="text" name="reTitle"><br>
작성자: <input type="text" name="reUser"><br>
글내용: <textarea rows="5" cols="30" name="reContent"></textarea>
<br><br>
<input type="submit" value="저장">
</form>
</body>
</html>
스프링 게시판 등록 - seupeuling gesipan deunglog

게시글 상세보기

글 제목을 누르면 해당하는 글 번호의 내용을 상세보기로 출력 시켜주도록 하는 방법입니다.

list.jsp의 내용을 변경

<td><a href="detailreview?reNum=${item.reNum}">${item.reTitle}</a></td>

reviewService.java 추가

	// 게시글 상세보기
	public reviewVo detail(Integer reNum) throws Exception {
		return reviewmapper.detail(reNum);
	}

reviewController.java 내용 추가

	// 게시글 자세히보기
	@RequestMapping(value="/detailreview")
	public ModelAndView detail(@RequestParam("reNum") int reNum) throws Exception {
		
		// 
		return new ModelAndView("detail","detail",reviewservice.detail(reNum));
	}

reviewmapper.java 내용 추가

	// 문의글 상세 보기
	public reviewVo detail(Integer reNum) throws Exception;

reviewMapper.xml 내용 추가

	<!-- 게시글 상세보기 -->
	<select id="detail" resultType="reviewVo">
		select * from reviewTable where reNum = #{reNum}
	</select>

detail.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
<script type="text/javascript">
window.onload = function() {
	document.getElementById("btnList").onclick = function() {
		location.href="/";
	}
	document.getElementById("btnUpdate").onclick = function() {
		
		if(confirm("정말수정할까요")) {
	
			frm.action="/updatereview";
			frm.submit();
		}
	}
	document.getElementById("btnDelete").onclick = function() {
		if(confirm("정말 삭제할까요?")) {
			frm.action="deletereview";
			frm.submit();
		}
	}
}
</script>

</head>
<body>
** 상세보기 **
<br>
<form name="frm" method="get">
<table border="2">
	<tr>
		<td>번호</td>
		<td>${detail1.reNum}</td>
		<input type="hidden" value="${detail1.reNum}" name="reNum">
		
	</tr>
	<tr>
		<td>작성자</td>
		<td>${detail1.reUser}</td>	
	</tr>
		<tr>
		<td>제목</td>
		<td>${detail1.reTitle}</td>
	</tr>
		<tr>
		<td>글내용</td>
		<td>${detail1.reUser}</td>
	</tr>
	</tr>
	<tr>
		<td>작성일</td>
		<td>${detail1.reregisterDate}</td>
	</tr>
	<tr>
		<td>조회수</td>
		<td>${detail1.reCnt}</td>
	</tr>
		<tr colspan="3">
		<td>
		<input type="button" value="목록" id="btnList">
		<input type="button" value="수정" id="btnUpdate">
		<input type="button" value="삭제" id="btnDelete">
		</td>
	</tr>
</table>
</form>
</body>
</html>

글을 눌렀을때 나오는 결과 페이지

스프링 게시판 등록 - seupeuling gesipan deunglog
스프링 게시판 등록 - seupeuling gesipan deunglog

글 수정하기

우선 상세보기에 사용하였던 메소드를 수정할 jsp 폼에 불러옵니다.

reviewController.java

	@GetMapping("/updatereview")
	// 여기서 RequestParam("num")은 detail.jsp에서 input 값의 reNum
	public ModelAndView update(@RequestParam("reNum") String reNum) throws Exception {
		
		return new ModelAndView("upform","up",reviewservice.detail(reNum));
	}

upform.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
<script type="text/javascript">
window.onload = function() {

	document.getElementById("btnUpdate").onclick = function() {
		
		if(confirm("정말수정할까요")) {
	
			frm.action="updatereviewcommit";
			frm.submit();
		}
	}
}
</script>

</head>
<body>
** 수정하기 **
<br>
<form name="frm" method="post">
<table border="2">
	<tr>
		<td>번호</td>
		<td>${up.reNum}</td>
		<input type="hidden" value="${up.reNum}" name="reNum">
		
	</tr>
	<tr>
		<td>작성자</td>
		<td>${up.reUser}</td>	
	</tr>
		<tr>
		<td>제목</td>
		<td><input type="text" value="${up.reTitle}" name="reTitle"></td>
	</tr>
		<tr>
		<td>글내용</td>
		<td><textarea rows="5" cols="50" name="reContent">${up.reContent}</textarea></td>
	</tr>
	</tr>
	<tr>
		<td>작성일</td>
		<td>${up.reregisterDate}</td>
	</tr>
	<tr>
		<td>조회수</td>
		<td>${up.reCnt}</td>
	</tr>
		<tr colspan="3">
		<td colspan="3">
		<input type="button" value="수정" id="btnUpdate" style="margin: auto; width: 100%;">
		</td>
	</tr>
</table>
</form>
</body>
</html>
스프링 게시판 등록 - seupeuling gesipan deunglog

여기서 제목과 내용을 수정 후 수정하기 버튼을 클릭 하면

reviewMapper.xml

	// 문의글 수정하기
	int updatereview(reviewVo vo) throws Exception;

reviewmapper.java

	// 문의글 수정하기
	int updatereview(reviewVo vo) throws Exception;

reviewService.java

	// 게시글 수정하기
	public int updatereview(reviewVo vo) throws Exception {
		return reviewmapper.updatereview(vo);
	}

reviewController.java

	@PostMapping("/updatereviewcommit")
	public String updatesubmit(reviewVo vo) throws Exception {
		int result = reviewservice.updatereview(vo);
		System.out.println("result " + result);
		if ( result > 0 )
			return "redirect:/";
		else
			return "error";
	}

현재 10번 글을 수정해보겠습니다.

스프링 게시판 등록 - seupeuling gesipan deunglog
스프링 게시판 등록 - seupeuling gesipan deunglog
스프링 게시판 등록 - seupeuling gesipan deunglog

글 삭제하기

reviewMapper.xml

	<!-- 글 삭제하기 -->
	<delete id="deletereview">
		delete from reviewTable where reNum = #{reNum}
	</delete>

reviewmapper.java

	// 게시글 삭제하기
	public int deletereview(String num) throws Exception;

reviewService.java

	// 게시글 삭제하기
	public int deletereview(String num) throws Exception {
		// TODO Auto-generated method stub
		return reviewmapper.deletereview(num);
	}

reviewController.java

	
	// 게시글 삭제하기
	@GetMapping("/deletereview")
	public String del(@RequestParam("reNum") String num) throws Exception {
		int delresult = reviewservice.deletereview(num);
		if(delresult > 0 )
			return "redirect:/";
		else
			return "error";
	}
	
스프링 게시판 등록 - seupeuling gesipan deunglog

현재 글이 10번까지 있는 것을 확인 할 수 있습니다.

10번 글을 지우도록 하겠습니다.

스프링 게시판 등록 - seupeuling gesipan deunglog

삭제가 정상적으로 된 것을 볼 수 있습니다.