상세보기 페이지에서 제품 수량을 선택하고 구매하기 버튼을 누르면
장바구니페이지로 이동
구매하기
view
<tr>
<td>상품수량</td>
<td>
<select name="qty" id="qty">
<option value="0">#선택#</option>
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
<option value="5">5</option>
</select>
</td>
</tr>
<script>
function product_cart() {
if ($("#qty").val()=="0") {
alert("수량을 선택하세요");
}else{
document.productfrm.action="/cart/insert";
document.productfrm.submit();
}
}
</script>
mapper
<insert id="insert" parameterType="kr.co.itwill.cart.CartDTO">
insert into cart(cartno,product_code,price,qty,id)
values(cart_seq.nextval,#{product_code},#{price},#{qty},#{id})
</insert>
DAO
public int CartInsert(CartDTO dto) {
return sqlSession.insert("cart.insert", dto);
}
CONTROLLER
@RequestMapping("/insert")
public String Cartinsert(@ModelAttribute CartDTO dto, HttpSession session)throws Exception {
//로그인 기능을 구현했다면 session.getAttribute()
//dto.setId(session.getAttribute("s_id"))
dto.setId("test");
//System.out.println(dto.toString());
cartDao.CartInsert(dto);
return "redirect:/cart/list";
}

장바구니 목록 페이지
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>list</title>
<link href="../css/main.css" rel="stylesheet" type="text/css">
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.4.1/css/bootstrap.min.css">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.6.3/jquery.min.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.4.1/js/bootstrap.min.js"></script>
</head>
<body>
<h3>장바구니 목록</h3>
<br>
<table border="1" class="table">
<tr class="info">
<th>아이디</th>
<th>번호</th>
<th>상품코드</th>
<th>상품단가</th>
<th>상품수량</th>
<th>총 가격</th>
</tr>
<c:forEach var="row" items="${list}">
<tr>
<td>${row.id}</td>
<td>${row.cartno}</td>
<td>${row.product_code}</td>
<td>${row.price}</td>
<td>${row.qty }</td>
<td>${row.price*row.qty}</td>
cartno=${row.cartno}'"> </td>
</tr>
</c:forEach>
</table>
<br>
<input type="button" value="계속 쇼핑하기" onclick="location.href='/product/list'" class="btn btn-primary">
DAO
public List<CartDTO> list(String id) {
return sqlSession.selectList("cart.list",id);
}
MAPPER
<select id="list" parameterType="String" resultType="kr.co.itwill.cart.CartDTO">
<![CDATA[
select *
from cart
where id=#{id}
order by cartno
]]>
</select>
CONTROLLER
@RequestMapping("/list")
public ModelAndView list(HttpSession session) {
//로그인시 String s_id=session.getAttribute("s_id")
String s_id="test";
ModelAndView mav=new ModelAndView();
mav.setViewName("cart/list");
mav.addObject("list",cartDao.list(s_id));
return mav;
}

장바구니 삭제
DAO
public int cartDelete(HashMap<String, Object> map) {
return sqlSession.delete("cart.delete",map);
}
MAPPER
<delete id="delete" parameterType="java.util.HashMap">
delete from cart
where cartno=#{cartno} and id=#{s_id}
</delete>
CONTROLLER
@RequestMapping("/delete")
public String delete(int cartno,HttpSession session) {
//dto에 없는 값은 map으로 넘긴다
HashMap<String, Object> map=new HashMap<>();
map.put("cartno", cartno);
map.put("s_id","test");
cartDao.cartDelete(map);
return "redirect:/cart/list";
}
