WEB/ERMaster
[ERMaster] shoppingmall - category
hvoon
2022. 9. 10. 12:30
카테고리별 상품

else if(command.equals("category")) ac=new CategoryAction();
package com.sam.shop.controller.action.product;
import java.io.IOException;
import java.util.ArrayList;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import com.sam.shop.controller.action.Action;
import com.sam.shop.dao.ProductDao;
import com.sam.shop.dto.ProductVO;
public class CategoryAction implements Action {
@Override
public void execute(HttpServletRequest
request, HttpServletResponse response)
throws ServletException, IOException {
String kind=request.getParameter("kind");
ProductDao pdao=ProductDao.getInstance();
ArrayList<ProductVO> list=pdao.selectKindProductList(kind);
request.setAttribute("productKindList", list);
String url="product/productKind.jsp";
request.getRequestDispatcher(url).forward(request, response);
}
}
ProductDao에 selectKindProductList 생성
public ArrayList<ProductVO> selectKindProductList(String kind) {
ArrayList<ProductVO> list=new ArrayList<ProductVO>();
String sql="select * from product where kind=?";
con=Dbman.getConnection();
try {
pstmt=con.prepareStatement(sql);
pstmt.setString(1,kind);
rs=pstmt.executeQuery();
while(rs.next()) {
ProductVO pvo=new ProductVO();
pvo.setPseq(rs.getInt("pseq"));
pvo.setName(rs.getString("name"));
pvo.setPrice2(rs.getInt("price2"));
pvo.setImage(rs.getString("image"));
list.add(pvo);
}
} catch (SQLException e) {e.printStackTrace();
} finally {Dbman.close(con, pstmt, rs);}
return list;
}
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ include file="../header.jsp" %>
<%@ include file="sub_image_menu.html" %>
<article>
<h2>Item</h2>
<c:forEach items="${productKindList }" var="productVO">
<div id="item">
<a href="shop.do?command=productDetail&pseq=${productVO.pseq}">
<img src="product_images/${productVO.image }"/>
<h3>${productVO.name }</h3>
<p>${productVO.price2 }</p>
</a>
</div>
</c:forEach>
<div class="clear"></div>
</article>
<%@ include file="../footer.jsp" %>
<div id="sub_img">
<img src="images/product/sub_img.jpg"
style="border-radius:20px 20px 20px 20px;">
</div>
<div class="clear"></div>
<nav id="sub_menu">
<ul>
<li><a href="shop.do?command=category&kind=1">Heels</a></li>
<li><a href="shop.do?command=category&kind=2">Boots</a></li>
<li><a href="shop.do?command=category&kind=3">Sandals</a></li>
<li><a href="shop.do?command=category&kind=4">Sneakers</a></li>
<li><a href="shop.do?command=category&kind=5">Sleeper</a></li>
<li><a href="shop.do?command=category&kind=6">On Sale</a></li>
</ul>
</nav>

상품 상세보기
else if(command.equals("productDetail")) ac=new ProductDetailAction();
package com.sam.shop.controller.action.product;
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import com.sam.shop.controller.action.Action;
import com.sam.shop.dao.ProductDao;
import com.sam.shop.dto.ProductVO;
public class ProductDetailAction implements Action {
@Override
public void execute(HttpServletRequest request,
HttpServletResponse response)
throws ServletException, IOException {
int pseq=Integer.parseInt(request.getParameter("pseq"));
ProductDao pdao=ProductDao.getInstance();
ProductVO pvo=pdao.getProduct(pseq);
request.setAttribute("productVO", pvo);
String url="product/productDetail.jsp";
request.getRequestDispatcher(url).forward(request, response);
}
}
ProductDao에 getProduct 생성
public ProductVO getProduct(int pseq) {
ProductVO pvo=null;
String sql="select*from product where pseq=?";
con=Dbman.getConnection();
try {
pstmt=con.prepareStatement(sql);
pstmt.setInt(1,pseq);
rs=pstmt.executeQuery();
if(rs.next()) {
pvo=new ProductVO();
pvo.setPseq(rs.getInt("pseq"));
pvo.setName(rs.getString("name"));
pvo.setKind(rs.getString("kind"));
pvo.setPrice2(rs.getInt("price1"));
pvo.setPrice2(rs.getInt("price2"));
pvo.setPrice2(rs.getInt("price3"));
pvo.setContent(rs.getString("content"));
pvo.setImage(rs.getString("image"));
pvo.setUseyn(rs.getString("useyn"));
pvo.setBestyn(rs.getString("bestyn"));
pvo.setIndate(rs.getTimestamp("indate"));
}
} catch (SQLException e) {e.printStackTrace();
} finally {Dbman.close(con, pstmt, rs);}
return pvo;
}
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ include file="../header.jsp" %>
<%@ include file="sub_image_menu.html" %>
<article>
<div id="itemdetail" style="float:left;">
<h1>Item</h1>
<form method="post" name="formm">
<fieldset>
<legend>Item detail info</legend>
<span style="float:left; margin-right:20px;">
<img src="product_images/${productVO.image}"
style="border-radius:20px;"/></span>
<h2>${productVO.name }</h2>
<label>가격: </label><p>${productVO.price2}원</p>
<label>수량: </label>
<input type="text" name="quantity" size="2"
value="1">
<input type="hidden" name="pseq"
value="${productVO.pseq }"><br>
</fieldset>
<div class="clear"></div>
<div style="margin:0 auto;">
<h3 style="font-size:170%;">
${productVO.content}</h3></div>
<div class="clear"></div>
<div id="buttons">
<input type="button" value="장바구니에 담기"
class="submit" onclick="go_cart();">
<input type="button" value="즉시 구매" class="submit"
onclick="go_order();">
<input type="button" value="뒤로" class="cancel"
onclick="history.go(-1);"></div>
</form>
</div>
</article>
<%@ include file="../footer.jsp" %>
