shopcartmanageaction.java

来自「Sample Hibernate Shopping Cart Applicati」· Java 代码 · 共 124 行

JAVA
124
字号
/*
 * ShopcartManage.java
 *
 * Created on February 18, 2005, 3:25 PM
 */

package org.simplecart.webapp.actions;

import java.util.Iterator;
import javax.servlet.http.*;

import org.apache.struts.actions.DispatchAction;
import org.apache.struts.action.*;

import org.simplecart.persistence.HibernateUtility;
import org.simplecart.webapp.Constants;
import org.simplecart.webapp.forms.ShopcartForm;

import org.simplecart.shopcart.catalog.ProductOption;
import org.simplecart.shopcart.*;
import org.simplecart.dao.InternetProductOptionDAO;

/**
 *
 * @author Daniel Watrous
 */
public class ShopcartManageAction  extends DispatchAction {
    
    private InternetProductOptionDAO odao;
    private ShopcartForm cartForm;
    private Shopcart shopcart;
    private ActionMessages errors;

    /**
     * this activity locates or creates a shopcart for this session
     * and places options into it.
     */
    public ActionForward addItem(ActionMapping mapping,
            ActionForm form,
            HttpServletRequest request,
            HttpServletResponse response) throws Exception {
        
        errors = new ActionMessages();
        HttpSession session = request.getSession();
        cartForm = (ShopcartForm) form;
        
        // *** retrieve or create shopcart object and associate with session
        shopcart = (Shopcart) session.getAttribute(Constants.SHOPCART);
        if (shopcart == null) {
            shopcart = new SimpleShopcart();
            session.setAttribute(Constants.SHOPCART, shopcart);
        }
        
        // *** load ProductOption using DAO
        // create DAO instance
        odao = new InternetProductOptionDAO();
        if (odao == null){
            errors.add(
                    ActionMessages.GLOBAL_MESSAGE,
                    new ActionMessage("error.databaseDAO"));
        }
        
        // find product objects and attach to request
        ProductOption option = odao.findById(cartForm.getOptionId(),false);

        // *** create a new ShopcartItem for this ProductOption and amount
        ShopcartItem item = 
                new SimpleShopcartItem(
                option.getId(), 
                cartForm.getAmount(),
                option.getName(),
                option.getDescription(),
                option.getDescription(),
                option.getUnitPriceActualRetail());
        shopcart.addItem(item);
        
        // *** commit and close Hibernate session
        HibernateUtility.commitTransaction();
        HibernateUtility.closeSession();
        
        // *** forward to success page
        return mapping.findForward(Constants.SUCCESS_KEY);
    }
    
    /**
     * this activity locates or creates a shopcart for this session
     * and removes an option from it.
     */
    public ActionForward removeItem(ActionMapping mapping,
            ActionForm form,
            HttpServletRequest request,
            HttpServletResponse response) throws Exception {
        
        errors = new ActionMessages();
        HttpSession session = request.getSession();
        cartForm = (ShopcartForm) form;
        
        // *** retrieve or create shopcart object and associate with session
        shopcart = (Shopcart) session.getAttribute(Constants.SHOPCART);
        if (shopcart == null) {
            shopcart = new SimpleShopcart();
            session.setAttribute(Constants.SHOPCART, shopcart);
        }
        
        shopcart.removeItem(cartForm.getItemIndex());
        
        // *** forward to success page
        return mapping.findForward(Constants.SUCCESS_KEY);
    }
    
    /**
     * display shopcart page
     */
    public ActionForward display(ActionMapping mapping,
            ActionForm form,
            HttpServletRequest request,
            HttpServletResponse response) throws Exception {
        
        // *** forward to success page
        return mapping.findForward(Constants.SUCCESS_KEY);
    }
        
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?