JSP

상품기본키로 상품VO 가져오기 및 장바구니 추가하기

9400 2023. 1. 18. 10:15
	
    // 상품기본키로 상품VO 가져오기 
    public ProductVO getProductById(String productId) {
    		ProductVO productVOById = null;
            for(int i =0; i<listOfProducts.size; i++){
            	ProductVO productVO = listOfProducts.get(i);
                if(productVO.getProductId().equals(productId)){
                	productVOById=productVO;
                    break;
                }
            }
            	return productVoById; //상품VO
            }

 

//장바구니 폼
    <form name="addForm" action="addCart.jsp?id=<%=productVO.getProductId()%>" 
    method="post">
        <a href="#" class="btn btn-info" onclick="addToCart()">상품주문&raquo;</a>
        <a href="cart.jsp" class="btn btn-warning">장바구니&raquo;</a>
        <a href="products.jsp" class="btn btn-secondary">상품목록&raquo;</a>
    </form>
	//상품주문 버튼 클릭시
	function addToCart(){
		if(confirm("상품을 장바구니에 추가하시겠습니까?")){
			//요청URI : addCart.jsp?id=p1234
			//방식 : post
			document.addForm.submit();
		}else{
			document.addForm.reset();
		}
	}
	add.Cart.jsp
    
    String id = request.getParameter("id");
    
    	if(id==null||id.trim().equals("")){ //만약 id가 없거나 null이면
		response.sendRedirect("products.jsp");
		return;
		}
    
	ProductRepository dao = ProductRepository.getInstance();
	ProductVO productVO = dao.getProductById(id);
    
   	if(productVO==null){ //상품결과가 없다면
    	response.sendRedircet("exceptionNoProductId.jsp");
        return;
    }else{ //상품 결과가 없다면 계속가자
    
    }
    
    //장바구니(세션) 하나의 장바구니에 하나의 세션 /세션명-> cartlist
    ArrayList<ProductVO> list = ( ArrayList<ProductVO>)session.getAttribute("cartlist");
    
    if(list==null){  //장바구니가 없으면 장바구니를 만듦
    	list = new ArrayList<ProductVO>();
       	session.setAttribute("cartlist",list);
    }
    
    Enumeration en = session.getAttributeNames();
    String name= en.nextElement().toString();
    
    int cnt=0;
    for(int i =0; i<list.size(); i++){ //장바구니 사이즈만큼
    	if(list.get(i).getProductId().equals(id)){  //장바구니에 이미 있으면
        	cnt++;
            //장바구니에 담은개수만 1증가
            list.get(i).setQuantity(list.get(i).getQuantity()+1); 
        }
	}
    
    //장바구니에 상품이 없으면
    if(cnt==0){
    	productVO.setQuantity(1);
        list.add(productVO);
    }
    
	response.sendRedircet("product.jsp?id="+id);