7. CartItem.java
#################################
오라클자바커뮤니티에서 설립한 오엔제이프로그래밍 실무교육센터
(오라클SQL, 튜닝, 힌트,자바프레임워크, 안드로이드, 아이폰, 닷넷 실무전문 강의)
장바구니내의 항목을 나타내는 CartItem.java 입니다.
//============================================================================
/**
* 시스템명 : goods / 장바구니
* 작 성 일 : 2005-05-15
* 작 성 자 : Lee, Jong-Cheol
* 수 정 자 :
* 파 일 명 : goods.action.CartInsertAction
* 버 전 : 1.0
* 개 요 : 쇼핑카트의 물품 추가 Action
* 이 력 : 2005-05-15 : 초기 작성
*
*/
//============================================================================
package cart.action;
import java.util.ArrayList;
import cart.model.Cart;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import org.apache.struts.action.DynaActionForm;
import cart.action.BaseAction;
import cart.model.Constants;
/**
* @author 이종철
*
* TODO To change the template for this generated type comment go to
* Window - Preferences - Java - Code Style - Code Templates
*/
public class CartInsertAction extends BaseAction{
public ActionForward cartInsert(ActionMapping mapping,
ActionForm form,
HttpServletRequest request,
HttpServletResponse response)
throws Exception {
DynaActionForm dForm = (DynaActionForm)form;
String gName = dForm.get("gname").toString();
String price = dForm.get("price").toString();
String cnt = dForm.get("cnt").toString();
Cart cart = getCart(request);
cart.addItem(gName, price, cnt);
ArrayList cartList = (ArrayList)cart.getCartItems();
HttpSession session = request.getSession();
session.setAttribute(Constants.CART_LIST, cartList);
//return mapping.findForward(Constants.CART);
//F5를 누르면 장바구니에 계속 담아지므로 URL창에 cart.jsp를 보이기 위해
//sendRedirecr함
response.sendRedirect("/struts-test/cart-exam/cart.jsp");
return null;
}
}
##########################
8. Cart.java
##########################
장바구니를 나타내는 Cart.java인데... 이 파일의 메소드를 통해 바구니에 담는다든지, 장바구니의 수량을 수정한다든지, 바구니의 내용물을 삭제하는 등의 기능을 수행합니다.
/********************************************************************************
* 시스템명 : goods > 장바구니
* 작 성 일 : 2005-05-11
* 작 성 자 : Lee, Jong-Cheol
* 수 정 자 :
* 파 일 명 : cart.model.Cart.java
* 버 전 : 1.0
* 개 요 : 장바구니 MODEL CLASS
* 이 력 : 2005-05-11 : 초기 작성
*
*******************************************************************************/
package cart.model;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
/**
* @author 이종철
*
* TODO To change the template for this generated type comment go to
* Window - Preferences - Java - Code Style - Code Templates
*/
public class Cart {
int count;
private Map myMap = new HashMap();
/**
* 쇼핑 카트에 물건 담기
* @param gcode
* @param gname
* @param price
* @param cnt
* @param juklip_ratio
* @param unit
*/
public void addItem(
String gname,
String price,
String cnt
) {
String itemId = null;
if (myMap.isEmpty()) {
itemId = "1";
}
else {
int no = myMap.size() + 1;
itemId = new Integer(no).toString();
}
ArrayList myArrayList = new ArrayList();
myArrayList.add(0, gname); //상품명
myArrayList.add(1, price); //가격
myArrayList.add(2, cnt); //개수
myMap.put(itemId , myArrayList);
}
/**
* 쇼핑 카트에서 상품 제거
* @param itemId
*/
public void removeItem(String itemId) {
myMap.remove(itemId);
}
/**
* 쇼핑 카트의 내역 변경
* @param itemId
* @param newQty
*/
public void updateItems(String itemId, String newQty) {
if (myMap.containsKey(itemId)) {
if (Integer.parseInt(newQty) > 0) {
ArrayList temp = (ArrayList)myMap.get(itemId);
temp.remove(2);
temp.add(2, newQty);
}
}
}
/**
* 쇼핑 카트내의 상품 수 파악
* @return
*/
public int getCount() {
count = myMap.size();
return count;
}
/**
* 전체 금액 파악
* @return
*/
public long getTotal() {
int ret = 0;
Iterator it = getCartItems().iterator();
for (; it.hasNext();) {
CartItem i = (CartItem) it.next();
ret += (new Integer(i.getPrice()).intValue() * new Integer(i.getCnt()).intValue());
}
return ret;
}
/**
* 쇼핑 카트 CLEAR
*
*/
public void empty() {
myMap.clear();
}
/**
* 쇼핑 카트내의 상품을 담고 있는 MAP을 리턴
* @return
*/
public Map getDetails() {
return myMap;
}
/**
* 쇼핑 카트의 상품 받아 냄
* @return
*/
public Collection getCartItems() {
try {
ArrayList items = new ArrayList();
Iterator it = myMap.keySet().iterator();
int cnt = 0;
while (it.hasNext()) {
String key = (String) it.next();
ArrayList value = (ArrayList) myMap.get(key);
try {
//Item item = petStore.getItem(key);
//Product prod = item.getProduct();
cnt++;
CartItem ci =
new CartItem(
key,
value.get(0).toString(),
value.get(1).toString(),
value.get(2).toString()
);
items.add(ci);
} catch (Exception cce) {
cce.printStackTrace();
}
}
// Sort the items
Collections.sort(items, new CartItem.ItemIdComparator());
return items;
} catch (Exception e) {
return null;
}
}
}
############################
9. CartViewAction.java
############################
장바구니의 내용물을 보여주는 Action 입니다.
//============================================================================
/**
* 시스템명 : cart / 장바구니
* 작 성 일 : 2005-05-16
* 작 성 자 : Lee, Jong-Cheol
* 수 정 자 :
* 파 일 명 : cart.action.CartViewAction
* 버 전 : 1.0
* 개 요 : 쇼핑카트의 내용을 보는 Action
* 이 력 : 2005-05-16 : 초기 작성
*
*/
//============================================================================
package cart.action;
import cart.model.Cart;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import java.util.ArrayList;
import cart.action.BaseAction;
import cart.model.Constants;
/**
* @author 이종철
*
* TODO To change the template for this generated type comment go to
* Window - Preferences - Java - Code Style - Code Templates
*/
public class CartViewAction extends BaseAction{
public ActionForward cartView(ActionMapping mapping,
ActionForm form,
HttpServletRequest request,
HttpServletResponse response)
throws Exception {
Cart cart = getCart(request);
ArrayList cartList = (ArrayList)cart.getCartItems();
HttpSession session = request.getSession();
session.setAttribute(Constants.CART_LIST, cartList);
return mapping.findForward(Constants.CART);
}
}
########################
10. CartInsertAction.java
########################
장바구니에 상품을 담는 Action 입니다.
//============================================================================
/**
* 시스템명 : goods / 장바구니
* 작 성 일 : 2005-05-15
* 작 성 자 : Lee, Jong-Cheol
* 수 정 자 :
* 파 일 명 : goods.action.CartInsertAction
* 버 전 : 1.0
* 개 요 : 쇼핑카트의 물품 추가 Action
* 이 력 : 2005-05-15 : 초기 작성
*
*/
//============================================================================
package cart.action;
import java.util.ArrayList;
import cart.model.Cart;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import org.apache.struts.action.DynaActionForm;
import cart.action.BaseAction;
import cart.model.Constants;
/**
* @author 이종철
*
* TODO To change the template for this generated type comment go to
* Window - Preferences - Java - Code Style - Code Templates
*/
public class CartInsertAction extends BaseAction{
public ActionForward cartInsert(ActionMapping mapping,
ActionForm form,
HttpServletRequest request,
HttpServletResponse response)
throws Exception {
DynaActionForm dForm = (DynaActionForm)form;
String gName = dForm.get("gname").toString();
String price = dForm.get("price").toString();
String cnt = dForm.get("cnt").toString();
Cart cart = getCart(request);
cart.addItem(gName, price, cnt);
ArrayList cartList = (ArrayList)cart.getCartItems();
HttpSession session = request.getSession();
session.setAttribute(Constants.CART_LIST, cartList);
//return mapping.findForward(Constants.CART);
//F5를 누르면 장바구니에 계속 담아지므로 URL창에 cart.jsp를 보이기 위해
//sendRedirecr함
response.sendRedirect("/struts-test/cart-exam/cart.jsp");
return null;
}
}
############################
11. CartUpdateAction.java
############################
장바구니내 상품의 수량을 수정 하는 Action 입니다.
//============================================================================
/**
* 시스템명 : goods / 장바구니
* 작 성 일 : 2005-05-18
* 작 성 자 : Lee, Jong-Cheol
* 수 정 자 :
* 파 일 명 : goods.action.CartUpdateAction
* 버 전 : 1.0
* 개 요 : 쇼핑카트 변경 Action
*
* 이 력 : 2005-05-18 : 초기 작성
*
*/
//============================================================================
package cart.action;
import java.util.ArrayList;
import cart.model.Cart;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import cart.action.BaseAction;
import cart.model.Constants;
/**
* @author 이종철
*
* TODO To change the template for this generated type comment go to
* Window - Preferences - Java - Code Style - Code Templates
*/
public class CartUpdateAction extends BaseAction{
public ActionForward cartUpdate(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response)
throws Exception {
Cart cart = getCart(request);
/* Cart items */
String itemid = request.getParameter("itemid");
String newQty = request.getParameter("newQty");
String next = request.getParameter("next");
cart.updateItems(itemid, newQty);
ArrayList cartList = (ArrayList)cart.getCartItems();
HttpSession session = request.getSession();
session.setAttribute(Constants.CART_LIST, cartList);
return mapping.findForward(Constants.CART);
}
}
#######################
12. CartDeleteAction.java
#######################
장바구니안의 상품을 삭제하는 Action 입니다.
//============================================================================
/**
* 시스템명 : goods / 장바구니
* 작 성 일 : 2005-05-15
* 작 성 자 : Lee, Jong-Cheol
* 수 정 자 :
* 파 일 명 : goods.action.CartDeleteAction
* 버 전 : 1.0
* 개 요 : 쇼핑카트의 물품 삭제 Action
* 이 력 : 2005-05-15 : 초기 작성
*
*/
//============================================================================
package cart.action;
import java.util.ArrayList;
import cart.model.Cart;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import cart.action.BaseAction;
import cart.model.Constants;
/**
* @author 이종철
*
* TODO To change the template for this generated type comment go to
* Window - Preferences - Java - Code Style - Code Templates
*/
public class CartDeleteAction extends BaseAction{
public ActionForward cartDelete(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response)
throws Exception {
Cart cart = getCart(request);
/* Cart items */
String itemid = request.getParameter("itemid");
String next = request.getParameter("next");
cart.removeItem(itemid);
ArrayList cartList = (ArrayList)cart.getCartItems();
HttpSession session = request.getSession();
session.setAttribute(Constants.CART_LIST, cartList);
return mapping.findForward(Constants.CART);
}
}
########################
13. CartToOrderAction.java
########################
cart.jsp에서 submit 했을때 주분서 화면으로 넘기기 위한 Action 입니다.
본 예제에서는 order.jsp는 제작하지 않았으니 참고 바랍니다.
이 액션을 통해 하나의 JSP에서 다른 JSP로 forward 시키는 것으로 실제 Action은 별일을 하지않고 단지 order.jsp로 forward만 처리 합니다.
//============================================================================
/**
* 시스템명 : cart / 장바구니
* 작 성 일 : 2005-05-27
* 작 성 자 : Lee, Jong-Cheol
* 수 정 자 :
* 파 일 명 : cart.action.CartToOrderAction
* 버 전 : 1.0
* 개 요 : 쇼핑카트에서 주문서로 넘어가는 Action
* 특별한 비지니스 로직의 처리는 없으며 order.jsp로 forward 함
* 이 력 : 2005-05-27 : 초기 작성
*
*/
//============================================================================
package cart.action;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import cart.model.Constants;
import cart.action.BaseAction;
/**
* @author 이종철
*
* TODO To change the template for this generated type comment go to
* Window - Preferences - Java - Code Style - Code Templates
*/
public class CartToOrderAction extends BaseAction{
public ActionForward defaultAction(
ActionMapping mapping,
ActionForm form,
HttpServletRequest request,
HttpServletResponse response) throws Exception
{
return mapping.findForward(Constants.ORDER);
}
}
댓글 없음:
댓글 쓰기