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()">상품주문»</a>
<a href="cart.jsp" class="btn btn-warning">장바구니»</a>
<a href="products.jsp" class="btn btn-secondary">상품목록»</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);