package org.springframework.autobuilds.jpetstore.web.spring;
import java.util.HashMap;
import java.util.Map;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.springframework.beans.support.PagedListHolder;
import org.springframework.autobuilds.jpetstore.domain.Category;
import org.springframework.autobuilds.jpetstore.domain.logic.PetStoreFacade;
import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.mvc.Controller;
/**
* @author Juergen Hoeller
* @since 30.11.2003
*/
public class ViewCategoryController implements Controller {
private PetStoreFacade petStore;
public void setPetStore(PetStoreFacade petStore) {
this.petStore = petStore;
}
public ModelAndView handleRequest(HttpServletRequest request, HttpServletResponse response) throws Exception {
Map model = new HashMap();
String categoryId = request.getParameter("categoryId");
if (categoryId != null) {
PagedListHolder productList = new PagedListHolder(this.petStore.getProductListByCategory(categoryId));
productList.setPageSize(4);
Category category = this.petStore.getCategory(categoryId);
request.getSession().setAttribute("ViewProductAction_productList", productList);
request.getSession().setAttribute("ViewProductAction_category", category);
model.put("productList", productList);
model.put("category", category);
}
else {
PagedListHolder productList = (PagedListHolder) request.getSession().getAttribute("ViewProductAction_productList");
Category category = (Category) request.getSession().getAttribute("ViewProductAction_category");
String page = request.getParameter("page");
if ("next".equals(page)) {
productList.nextPage();
} else if ("previous".equals(page)) {
productList.previousPage();
}
model.put("productList", productList);
model.put("category", category);
}
return new ModelAndView("Category", model);
}
}