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);
}
}