📄 productaction.java
字号:
package com.estore.struts.action;import java.util.Collection;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import org.apache.struts.action.ActionForm;import org.apache.struts.action.ActionForward;import org.apache.struts.action.ActionMapping;import org.apache.struts.actions.DispatchAction;import com.estore.struts.Globals;import com.estore.struts.entity.Catalog;import com.estore.struts.entity.Product;import com.estore.struts.service.ProductService;import com.estore.struts.utils.PageHelper;import com.estore.struts.utils.ServiceFactory;public class ProductAction extends DispatchAction { private static ProductService productService; static { productService = (ProductService) ServiceFactory.getInstance() .getService(Globals.PRODUCT_SERVICE); } /* * 第一个页面,从数据库中获得商品,并且进行了,分页处理; */ public ActionForward listAll(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception { return listByPage(mapping, form, request, response); } public ActionForward listDetail(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) { Integer id = Integer.parseInt(request.getParameter("productid")); request.setAttribute("product", productService.getProductById(id)); return mapping.findForward("listdetail"); } /* * 搜索想要的产品,根据不同的搜索规则从数据库中取得相应的结果; */ public ActionForward searchProduct(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) { String text = request.getParameter("text"); String rule = request.getParameter("radio"); String catalog = request.getParameter("catalog"); if(! catalog.equals("0")){ text = catalog; rule = "catalog"; } if(text.equals("")){ request.setAttribute("message","请输入您要查询的内容,请<a onclick='javascript:history.go(-1)' style='color:red;'>返回</a>!"); return mapping.findForward("error"); } if(rule == null){ request.setAttribute("message","请选择一种查询规则,请<a onclick='javascript:history.go(-1)' style='color:red;'>返回</a>!"); return mapping.findForward("error"); } Collection<Product> searchproduct = productService.searchProduct(text,rule); request.setAttribute("products", searchproduct); int size = searchproduct.size(); request.setAttribute("size", size); return mapping.findForward("listall"); } /* * 将自己所需要的商品添加到数据库中; */ public ActionForward addProduct(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) { String tag = request.getParameter("tag"); if (tag.equalsIgnoreCase("true")) { String name = request.getParameter("name"); System.out.println("00000000000000000000"+name); String author = request.getParameter("author"); double price = Double.valueOf(request.getParameter("price")); String printer = request.getParameter("printer"); String isbn = request.getParameter("isbn"); int booknum = Integer.valueOf(request.getParameter("booknum")); String description = request.getParameter("description"); String imagepath = request.getParameter("imagepath"); int catalogid = Integer.valueOf(request.getParameter("catalog")); Catalog catalog = productService.getCatalog(catalogid); Product product = new Product(); product.setCatalog(catalog); // 1,如果catalog.hbm.xml中将set集合的lazy="true",在向catalog的集合中// 添加商品product时,会报出延迟加载异常;// 因为catalog是刚从数据库中拿过来的,而没有立即抓取集合造成的;// 2,如果catalog.hbm.xml中将set集合的lazy="true",在向catalog的集合中// 添加商品product时,会报出延迟加载异常;// 因为catalog是刚从数据库中拿过来的,处于游离状态,数据库中有相应的记录;// 而product是刚new出来的,处于临时状态,在向catalog的集合中添加时,会找// 不到相应的id, 正体现了hibernate是通过id来操作持久化对象的;// catalog.getProducts().add(product); product.setName(name); product.setAuthor(author); product.setPrice(price); product.setPrinter(printer); product.setIsbn(isbn); product.setBooknum(booknum); product.setDescription(description); product.setImagepath(imagepath); product.setCreatetime(new java.sql.Date(System.currentTimeMillis())); product.setState(0); productService.addProduct(product); Collection<Product> products = productService.getProducts(); int size = products.size(); request.setAttribute("size", size); request.setAttribute("products", products); return mapping.findForward("listall"); } else { return mapping.findForward("addproduct"); } } /* * 辅助方法 */ public ActionForward listByPage(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception { int page = 1; try { //第一次因为没有设置page属性,所以会抛个空指针异常,捕获之后将page设置为1; page = Integer.parseInt(request.getParameter("page")); } catch (Exception ex) { page = 1; } PageHelper pageHelper = new PageHelper(); pageHelper.setPageSize(Globals.PAGE_SIZE); pageHelper.setCurrentPage(page); pageHelper.setMaxCount(productService.getProudctCount()); Collection<Product> products = productService.getProductsByPages(page); request.setAttribute("navigation", pageHelper.showNavigation("listAll")); request.setAttribute("products", products); int size = products.size(); request.setAttribute("size", size); return mapping.findForward("listall"); }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -