package org.springframework.samples.jpetstore.web.spring; import java.util.Iterator; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.springframework.samples.jpetstore.domain.Cart; import org.springframework.samples.jpetstore.domain.CartItem; import org.springframework.web.servlet.ModelAndView; import org.springframework.web.servlet.mvc.Controller; import org.springframework.web.util.WebUtils; /** * @author Juergen Hoeller * @since 30.11.2003 */ public class UpdateCartQuantitiesController implements Controller { public ModelAndView handleRequest(HttpServletRequest request, HttpServletResponse response) throws Exception { Cart cart = (Cart) WebUtils.getOrCreateSessionAttribute(request.getSession(), "sessionCart", Cart.class); Iterator cartItems = cart.getAllCartItems(); while (cartItems.hasNext()) { CartItem cartItem = (CartItem) cartItems.next(); String itemId = cartItem.getItem().getItemId(); try { int quantity = Integer.parseInt(request.getParameter(itemId)); cart.setQuantityByItemId(itemId, quantity); if (quantity < 1) { cartItems.remove(); } } catch (NumberFormatException ex) { // ignore on purpose } } request.getSession().setAttribute("sessionCart", cart); return new ModelAndView("Cart", "cart", cart); } }