KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > springframework > samples > jpetstore > web > spring > AddItemToCartController


1 package org.springframework.samples.jpetstore.web.spring;
2
3 import javax.servlet.http.HttpServletRequest JavaDoc;
4 import javax.servlet.http.HttpServletResponse JavaDoc;
5
6 import org.springframework.samples.jpetstore.domain.Cart;
7 import org.springframework.samples.jpetstore.domain.Item;
8 import org.springframework.samples.jpetstore.domain.logic.PetStoreFacade;
9 import org.springframework.web.servlet.ModelAndView;
10 import org.springframework.web.servlet.mvc.Controller;
11 import org.springframework.web.util.WebUtils;
12
13 /**
14  * @author Juergen Hoeller
15  * @since 30.11.2003
16  */

17 public class AddItemToCartController implements Controller {
18
19     private PetStoreFacade petStore;
20
21     public void setPetStore(PetStoreFacade petStore) {
22         this.petStore = petStore;
23     }
24
25     public ModelAndView handleRequest(HttpServletRequest JavaDoc request, HttpServletResponse JavaDoc response) throws Exception JavaDoc {
26         Cart cart = (Cart) WebUtils.getOrCreateSessionAttribute(request.getSession(), "sessionCart", Cart.class);
27         String JavaDoc workingItemId = request.getParameter("workingItemId");
28         if (cart.containsItemId(workingItemId)) {
29             cart.incrementQuantityByItemId(workingItemId);
30         }
31         else {
32             // isInStock is a "real-time" property that must be updated
33
// every time an item is added to the cart, even if other
34
// item details are cached.
35
boolean isInStock = this.petStore.isItemInStock(workingItemId);
36             Item item = this.petStore.getItem(workingItemId);
37             cart.addItem(item, isInStock);
38         }
39         return new ModelAndView("Cart", "cart", cart);
40     }
41
42 }
43
Popular Tags