SSH(struts+spring+hibernate)迅速开发--第八章 浏览和选购商品(3)
来源:互联网 发布:食品安全数据 编辑:程序博客网 时间:2024/06/10 04:33
同样,我们也产生一个ShopAction类,里面主要有如下几个功能的方法:
a. 分页查询商品列表
b. 显示购物车中的商品
c. 往购物车中添加商品
d. 改变某商品在购物车中的数量
e. 从购物车中清除某商品
具体代码清单如下:
/*
* Generated by MyEclipse Struts
* Template path: templates/java/JavaClass.vtl
*/
package cn.com.book.demo.struts.action;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
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 cn.com.book.demo.hibernate.dao.Shop;
import cn.com.book.demo.services.PrepareShop;
import cn.com.book.demo.services.ShopServices;
import cn.com.book.demo.services.ShoppingCar;
import cn.com.book.demo.services.impl.ShopServicesImpl;
import cn.com.book.demo.struts.form.ShopForm;
import cn.com.book.demo.struts.util.Constants;
/**
* MyEclipse Struts
* Creation date:
*
* XDoclet definition:
* @struts.action path="/shop" name="shopForm" scope="request"
*/
public class ShopAction extends DispatchAction {
private ShopServices shopService = null;
private final int pageSize = 10;
/*
* Generated Methods
*/
/**
* 分页查询商品列表
* @param mapping
* @param form
* @param request
* @param response
* @return ActionForward
*/
public ActionForward find(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response) {
ShopForm shopForm = (ShopForm) form;// TODO Auto-generated method stub
this.initServices();
String path = "success";
int targetPage = shopForm.getTargetPage();
String shopName = shopForm.getShopName();
Map shopMsgMap = this.shopService.findShopsMsg(shopName, targetPage, pageSize);
List shopList = (List)shopMsgMap.get(ShopServices.SHOP_LIST);
int totalPage = ((Integer)shopMsgMap.get(ShopServices.PAGE_COUNT)).intValue();
shopForm.setShops(shopList);
shopForm.setTotalPage(totalPage);
shopForm.setHasFirst(targetPage>1);
shopForm.setHasPrev(targetPage>1);
shopForm.setHasNext(targetPage<totalPage);
shopForm.setHasLast(targetPage<totalPage);
//System.out.println(shopForm.isHasLast());
return mapping.findForward(path);
}
/**
* 显示购物车中的商品
* */
public ActionForward displayAddedShops(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response) {
ShopForm shopForm = (ShopForm) form;// TODO Auto-generated method stub
ShoppingCar shopCar = this.initShoppingCar(request);
int[] shopIds = shopCar.getShops();
//System.out.println("size=" + shopIds.length);
if(shopIds != null && shopIds.length>0){
this.initServices();
List shops = new ArrayList();
shopForm.setShops(shops);
PrepareShop preShop = null;
Shop shop = null;
for(int i=0; i<shopIds.length; i++){
shop = this.shopService.findShopById(shopIds[i]);
if(shop != null){
preShop = new PrepareShop();
preShop.setPrice(shop.getPrice());
preShop.setShopId(shop.getId());
preShop.setShopName(shop.getName());
preShop.setAmount(shopCar.getAmount(shopIds[i]));
preShop.setTotalPrice(preShop.getPrice()*preShop.getAmount());
shops.add(preShop);
}
i++;
}
}
return mapping.findForward("displayAddedShops");
}
/**
* 往购物车里面添加商品
* */
public ActionForward addShop(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response) {
ShopForm shopForm = (ShopForm) form;// TODO Auto-generated method stub
int shopId = shopForm.getShopId();
ShoppingCar shopCar = this.initShoppingCar(request);
shopCar.addShop(shopId);
//System.out.println("add a shop");
return mapping.findForward("addShop");
}
/**
* 改变商品在购物车中的数量
* */
public ActionForward changeShopAmount(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response) {
ShopForm shopForm = (ShopForm) form;// TODO Auto-generated method stub
int shopId = shopForm.getShopId();
int shopAmount = shopForm.getShopAmount();
ShoppingCar shopCar = this.initShoppingCar(request);
shopCar.change(shopId, shopAmount);
return mapping.findForward("changeShopAmount");
}
/**
* 删除购物车中的商品
* */
public ActionForward deleteShop(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response) {
ShopForm shopForm = (ShopForm) form;// TODO Auto-generated method stub
int shopId = shopForm.getShopId();
ShoppingCar shopCar = this.initShoppingCar(request);
shopCar.removeShop(shopId);
return mapping.findForward("deleteShop");
}
private ShoppingCar initShoppingCar(HttpServletRequest request){
ShoppingCar shopCar = null;
Object shopCarObj = request.getSession().getAttribute(Constants.SHOPPING_KEY);
if(shopCarObj != null){
shopCar = (ShoppingCar)shopCarObj;
}else{
shopCar = new ShoppingCar();
request.getSession().setAttribute(Constants.SHOPPING_KEY, shopCar);
}
return shopCar;
}
private void initServices(){
if(this.shopService == null){
this.shopService = new ShopServicesImpl();
}
}
public void setShopService(ShopServices shopServices) {
this.shopService = shopServices;
}
}
- SSH(struts+spring+hibernate)迅速开发--第八章 浏览和选购商品(3)
- SSH(struts+spring+hibernate)迅速开发--第八章 浏览和选购商品(1)
- SSH(struts+spring+hibernate)迅速开发--第八章 浏览和选购商品(2)
- SSH(struts+spring+hibernate)迅速开发--第八章 浏览和选购商品(5)
- SSH(struts+spring+hibernate)迅速开发--第六章 用户登陆和注册(3)
- SSH(struts+spring+hibernate)迅速开发--第六章 用户登陆和注册(1)
- SSH(struts+spring+hibernate)迅速开发--第六章 用户登陆和注册(2)
- SSH(struts+spring+hibernate)迅速开发--第六章 用户登陆和注册(4)
- SSH(struts+spring+hibernate)迅速开发--第六章 用户登陆和注册(5)
- SSH(struts+spring+hibernate)迅速开发--第六章 用户登陆和注册(6)
- SSH(struts+spring+hibernate)迅速开发--第六章 用户登陆和注册(7)
- SSH(struts+spring+hibernate)迅速开发--第七章 用户注册的表单校验(3)
- SSH(struts+spring+hibernate)迅速开发--第九章 下订单(3)
- SSH(struts+spring+hibernate)迅速开发--第二章 SSH框架搭建(1)
- SSH(struts+spring+hibernate)迅速开发--第二章 SSH框架搭建(2)
- SSH(struts+spring+hibernate)迅速开发--第五章 定义配置和资源文件
- SSH(struts+spring+hibernate)迅速开发--第三章 生成POJO对象和表映射(1)
- SSH(struts+spring+hibernate)迅速开发--第三章 生成POJO对象和表映射(2)
- as3——数组简介
- .NET生成静态页面并分页
- IList,ICollection,IEnumerable,IListIList,ICollection,IEnumerable辨析
- 日誌
- js验证表单大全
- SSH(struts+spring+hibernate)迅速开发--第八章 浏览和选购商品(3)
- as3——数字的近似
- MP530注墨 连供及传真的心得体会
- 什么是呼叫中心?
- 今年IT公司薪水统计,欢迎补充(转载)
- as3——数字进制的转换
- qq聊天/msn聊天/发送邮件
- [转]LINQ(1):初识 LINQ
- erlang网络编程的几个性能调优和注意点