스프링 게시판 스터디 5 - Delete 구현하기
December 03, 2018
- 항상 /list 타이핑 해주기 귀찮으니까 home.jsp를 살짝 바꿔주자
home.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<html>
<head>
<title>Home</title>
</head>
<body>
<h1>
<a href="list">게시판으로 이동</a>
</h1>
</body>
</html>
list.jsp에서 Delete 부분 살펴보기
<c:forEach items="${list}" var="list">
<tr>
<td>${list.bId}</td>
<td><a href="content_view?bId=${list.bId}">${list.bTitle}</a></td>
<td><fmt:formatDate value="${list.bDate}" pattern="yyyy-MM-dd HH:mm"/></td>
<td>${list.bCount}</td>
<td><a href="update_view?bId=${list.bId}" class="btn btn-default" role="button">수정하기</a></td>
<!-- 삭제하기 버튼을 클릭하면 해당하는 bId와 함께 delete url을 요청한다 -->
<td><a href="delete?bId=${list.bId}" class="btn btn-default" role="button">삭제하기</a></td>
</tr>
</c:forEach>
5-1 Controller Delete 작성
@Controller
public class BController {
private static final Logger logger = LoggerFactory.getLogger(BController.class);
@Autowired
private SqlSession sqlSession;
@RequestMapping("/list")
public String list(Model model) {
logger.info("list()");
IDao dao = sqlSession.getMapper(IDao.class);
model.addAttribute("list", dao.list());
return "list";
}
// list랑 비교하면서 보자
// delete는 view에 정보를 넘겨줄 필요가 없고 dao를 통해 db를 조작만 하고 끝난다
// bId가 Int 인 것에 유의하자
// 조작이 끝나면 list 페이지로 넘어가게 한다
@RequestMapping("/delete")
public String list(HttpServletRequest request) {
logger.info("delete()");
IDao dao = sqlSession.getMapper(IDao.class);
dao.delete(Integer.parseInt(request.getParameter("bId")));
return "redirect:list";
}
}
5-2 IDao 작성
package com.javalec.bbs_prac.dao;
import java.util.ArrayList;
import com.javalec.bbs_prac.dto.BDto;
public interface IDao {
public ArrayList<BDto> list();
// 리턴타입이 void라는 것과 parameter 타입이 int라는 것을 유의
public void delete(int bId);
}
5-3 IDao.xml (Mapper) 작성
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.javalec.bbs_prac.dao.IDao">
<select id="list" resultType="com.javalec.bbs_prac.dto.BDto">
SELECT * FROM BOARD ORDER BY 1 DESC
</select>
<!-- resultType이 없다 -->
<delete id="delete">
DELETE FROM BOARD WHERE BID = #{param1}
</delete>
</mapper>