장바구니에 물건 넣기
확인 클릭 시 장바구니에 물품이 담긴다.
장바구니 클릭 시 아까 담았던 물품 리스트를 확인할 수 있음.
<%@page import="java.util.ArrayList"%>
<%@page import="java.util.List"%>
<%@page import="dto.Product"%>
<%@page import="ch04.com.dao.ProductRepository"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%
String id = request.getParameter("id");
//id가 없거나 값이 없을 때
if(id==null || id.trim().equals("")){
response.sendRedirect("products.jsp");
return;
}
//상품저장소 객체 생성
ProductRepository dao = ProductRepository.getInstance();
//상품 아이디에 해당하는 정보를 얻어와보자
Product product = dao.getProductById(id);
//id의 값이 P9999
if(product == null){
response.sendRedirect("/exceptionNoProductId.jsp");
}
//모든 상품을 가져와보자
List<Product> goodsList = dao.getAllProducts();
Product goods = new Product();
for(int i = 0; i < goodsList.size(); i++){
//요청 파라미터 아이디의 상품이 존재하는지 검사
goods = goodsList.get(i);
//A.equals(id)
if(goods.getProductId().equals(id)){
//for문에서 벗어나라
break;
}
}
//*요청 파라미터 아이디의 상품을 담은 장바구니를 초기화
//세션:cartlist를 얻어와 ArrayList 객체에 저장
ArrayList<Product> list = (ArrayList<Product>)session.getAttribute("cartlist");
out.print("list의 크기 : " + list);
//만약 cartlist라는 세션 정보가 없다면 ArrayList객체를 생성하고 cartlist세션 생성
if(list == null){
list = new ArrayList<Product>();
session.setAttribute("cartlist", list);
}
//list : 장바구니에 담긴 상품 목록
int cnt = 0;
Product goosQnt = new Product();
for(int i =0;i<list.size();i++){
goosQnt = list.get(i);
//요청 파라미터 아이디 addCart.jsp?id=P1234의 상품이
//장바구니에 담긴 목록이 있다면
//해당 상품의 수량을 1 증가
if(goosQnt.getProductId().equals(id)){
int orderQuantity = goosQnt.getQuantity() + 1;
goosQnt.setQuantity(orderQuantity);
}
}
//요청 파라미터 아이디addCart.jsp?id=P1234의 상품이
//장바구니에 담긴 목록에 없다면 해당 상품의 수량을 1로 처리
if(cnt == 0){
goods.setQuantity(1);
list.add(goods);
}
response.sendRedirect("product.jsp?id="+id);
%>
<%@page import="dto.Product"%>
<%@page import="ch04.com.dao.ProductRepository"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<!DOCTYPE html>
<html>
<head>
<link rel="stylesheet"
href="<%=request.getContextPath()%>/css/bootstrap.min.css" />
<title>상품 상세 정보</title>
<script type="text/javascript">
function addToCart(){
//확인 : true, 취소 : false
if(confirm("상품을 장바구니에 추가하시겠습니까?")){ //확인
document.addForm.submit();
}else{ //취소
document.addForm.reset();
}
}
</script>
</head>
<body>
<%-- <jsp:useBean id="productDAO" class="ch04.com.dao.ProductRepository" /> --%>
<%
ProductRepository productDAO = ProductRepository.getInstance();
%>
<div class="jumbotron">
<div class="container">
<h1 class="display-3">상품 정보</h1>
</div>
</div>
<%
//product.jsp?id=P1234
String id = request.getParameter("id");
// out.print("id : " + id + "<br />");
// ProductRepository productDAO = new ProductRepository();
Product product = productDAO.getProductById(id);
%>
<c:set var="product" value="<%=product%>" />
<div class="container">
<div class="row">
<div class="col-md-5">
<img src="/upload/${product.filename}" style="width:100%;" />
</div>
<div class="col-md-6">
<h3>${product.pname}</h3>
<p>${product.description}</p>
<p>
<b>상품코드 : </b>
<span class="badge badge-danger">${product.productId}</span>
</p>
<p><b>제조사</b> : ${product.manufacturer}</p>
<p><b>분류</b> : ${product.category}</p>
<p><b>제고 수</b> : ${product.unitsInStock}</p>
<h4>${product.uniPrice}원</h4>
<p>
<form name="addForm" method="post"
action="addCart.jsp?id=${product.productId}">
<a href="#" class="btn btn-info" onclick="addToCart()">
상품 주문 »</a>
<a href="cart.jsp" class="btn btn-warning">장바구니»</a>
<a href="products.jsp" class="btn btn-secondary">상품 목록»</a>
</form>
</p>
</div>
</div>
</div>
</body>
</html>
=> 장바구니 버튼과 script를 추가하여 상품 주문 버튼을 클릭할 때 장바구니에 물품이 담기는 함수를 작성
삭제하기 클릭 시
장바구니에 담긴 모든 물품이 삭제된다.