KickJava   Java API By Example, From Geeks To Geeks.

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


1 package org.springframework.samples.jpetstore.web.spring;
2
3 import java.util.HashMap JavaDoc;
4 import java.util.Map JavaDoc;
5
6 import javax.servlet.http.HttpServletRequest JavaDoc;
7 import javax.servlet.http.HttpServletResponse JavaDoc;
8
9 import org.springframework.beans.support.PagedListHolder;
10 import org.springframework.samples.jpetstore.domain.Category;
11 import org.springframework.samples.jpetstore.domain.logic.PetStoreFacade;
12 import org.springframework.web.servlet.ModelAndView;
13 import org.springframework.web.servlet.mvc.Controller;
14
15 /**
16  * @author Juergen Hoeller
17  * @since 30.11.2003
18  */

19 public class ViewCategoryController implements Controller {
20
21     private PetStoreFacade petStore;
22
23     public void setPetStore(PetStoreFacade petStore) {
24         this.petStore = petStore;
25     }
26
27     public ModelAndView handleRequest(HttpServletRequest JavaDoc request, HttpServletResponse JavaDoc response) throws Exception JavaDoc {
28         Map JavaDoc model = new HashMap JavaDoc();
29         String JavaDoc categoryId = request.getParameter("categoryId");
30         if (categoryId != null) {
31             Category category = this.petStore.getCategory(categoryId);
32             PagedListHolder productList = new PagedListHolder(this.petStore.getProductListByCategory(categoryId));
33             productList.setPageSize(4);
34             request.getSession().setAttribute("ViewProductAction_category", category);
35             request.getSession().setAttribute("ViewProductAction_productList", productList);
36             model.put("category", category);
37             model.put("productList", productList);
38         }
39         else {
40             Category category = (Category) request.getSession().getAttribute("ViewProductAction_category");
41             PagedListHolder productList = (PagedListHolder) request.getSession().getAttribute("ViewProductAction_productList");
42             if (category == null || productList == null) {
43                 throw new IllegalStateException JavaDoc("Cannot find pre-loaded category and product list");
44             }
45             String JavaDoc page = request.getParameter("page");
46             if ("next".equals(page)) {
47                 productList.nextPage();
48             }
49             else if ("previous".equals(page)) {
50                 productList.previousPage();
51             }
52             model.put("category", category);
53             model.put("productList", productList);
54         }
55         return new ModelAndView("Category", model);
56     }
57
58 }
59
Popular Tags