Documentation
Examples
Tutorials
JAR files
Leaks
Errata
/ch7/catalog/ControllerHelper.java
/ch7/catalog/ControllerHelper.java
package ch7.catalog; import java.io.IOException; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.servlet.ServletException; import shared.HelperBaseCh6; import shared.ButtonMethod; import shared.HibernateHelper; public class ControllerHelper extends HelperBaseCh6 { private CatalogItem item = new CatalogItem(); private ShoppingCart
cart = new ShoppingCart
(); public ControllerHelper(HttpServletRequest request, HttpServletResponse response) { super(request, response); } static public void initHibernate(boolean create) { HibernateHelper.initSessionFactory(CatalogItem.class); } public Object getItem() { return item; } public Object getCart() { return cart; } public void copyFromSession(Object sessionHelper) { if (sessionHelper.getClass() == this.getClass()) { item = ((ControllerHelper) sessionHelper).item; cart = ((ControllerHelper) sessionHelper).cart; } } public String jspLocation(String page) { return "/WEB-INF/classes/ch7/catalog/" + page; } @ButtonMethod(isDefault = true) public String methodDefault() { //Make all the catalog items available //from the BrowseLoop.jsp. java.util.List list = HibernateHelper.getListData(CatalogItem.class); request.setAttribute("allItems", list); return jspLocation("BrowseLoop.jsp"); } @ButtonMethod(buttonName = "addCart") public String methodAddCart() { cart.addItem(item); item = new CatalogItem(); return methodDefault(); } @ButtonMethod(buttonName = "emptyCart") public String methodEmptyCart() { cart.resetItems(); return methodDefault(); } @ButtonMethod(buttonName = "viewItem") public String methodViewItem() { fillBeanFromRequest(item); if (item.getItemId() != null) { Object dbObj = HibernateHelper.getFirstMatch(item, "itemId", item.getItemId()); if (dbObj != null) { item = (CatalogItem) dbObj; } } return methodDefault(); } @ButtonMethod(buttonName = "viewCart") public String methodViewCart() { return jspLocation("Cart.jsp"); } @ButtonMethod(buttonName = "processCart") public String methodProcessCart() { for (CatalogItem anItem : cart.getItems()) { cart.addTotal(anItem.getPrice()); cart.incrCount(); } return jspLocation("ProcessCart.jsp"); } @Override protected void doGet() throws IOException, ServletException { if (HibernateHelper.testDB(response)) { addHelperToSession("helper", SessionData.IGNORE); //BrowseLoop.jsp is only page that a //GET request will see. String address = methodDefault(); request.getRequestDispatcher(address).forward(request, response); } } @Override protected void doPost() throws ServletException, IOException { if (HibernateHelper.testDB(response)) { addHelperToSession("helper", SessionData.READ); String address = executeButtonMethod(); request.getRequestDispatcher(address).forward(request, response); } } }
Contact the author