package org.springframework.samples.jpetstore.web.struts;
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 org.springframework.samples.jpetstore.domain.Cart;
import org.springframework.samples.jpetstore.domain.Item;
public class AddItemToCartAction extends BaseAction {
public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception {
CartActionForm cartForm = (CartActionForm) form;
Cart cart = cartForm.getCart();
String workingItemId = cartForm.getWorkingItemId();
if (cart.containsItemId(workingItemId)) {
cart.incrementQuantityByItemId(workingItemId);
}
else {
// isInStock is a "real-time" property that must be updated
// every time an item is added to the cart, even if other
// item details are cached.
boolean isInStock = getPetStore().isItemInStock(workingItemId);
Item item = getPetStore().getItem(workingItemId);
cartForm.getCart().addItem(item, isInStock);
}
return mapping.findForward("success");
}
}
|