




已閱讀5頁,還剩18頁未讀, 繼續(xù)免費(fèi)閱讀
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
.一、添加商品到購物車l 開發(fā)步驟:1) 創(chuàng)建數(shù)據(jù)庫表及進(jìn)行反向工程2) 創(chuàng)建購物車模型3) 編寫DAO 層4) 編寫Service 層5) 編寫Action 層6) 編寫struts 和Spring 配置文件7) 編寫JSP 頁面具體操作如下:1. 創(chuàng)建數(shù)據(jù)庫表訂單表(orders),包含3 個(gè)字段:orderid(訂單編號),userid(用戶表的關(guān)聯(lián)字段),orderdate(訂單日期)訂單項(xiàng)表(orderitem),包含4 個(gè)字段:orderitemid(訂單項(xiàng)編號),orderid(與訂單表關(guān)聯(lián)字段),bookid(與圖書表關(guān)聯(lián)字段),quantity(數(shù)量)進(jìn)行兩張表的反向工程,生成響應(yīng)的POJO 和hbm.xml 文件。2. 創(chuàng)建購物車模型創(chuàng)建購物車模型購物車模型CartCart.java 代碼如下:package com.sxjiang.bookstore.model;import java.util.HashMap;import java.util.Iterator;import java.util.Map;import com.sxjiang.bookstore.vo.Orderitem;public final class Cart protected Map items;public Cart()if(items=null) items=new HashMap();public void addBook(Integer bookid,Orderitem orderitem)if(items.containsKey(bookid)Orderitem _orderitem=items.get(bookid);_orderitem.setQuantity(_orderitem.getOrderitemid()+orderitem.getQuantity();items.put(bookid, _orderitem);elseitems.put(bookid, orderitem);public void updateCart(Integer bookid,int quantity)Orderitem orderitem=items.get(bookid);orderitem.setQuantity(quantity);items.put(bookid, orderitem);public int getTotalPrice()int totalPrice=0;for(Iterator it=items.values().iterator();it.hasNext();)Orderitem orderitem=(Orderitem)it.next();Book book=orderitem.getBook();int quantity=orderitem.getQuantity();totalPrice+=book.getPrice()*quantity;return totalPrice;public Map getItems() return items;public void setItems(Map items) this.items = items;3. DAODAO 層主要的類為BaseDAO 類,IBookDAO 接口和BookDAO 類。在IBookDAO 中定義了getBookById()方法,通過這個(gè)方法可以根據(jù)id 號,得到書的信息。BookDAO 具體實(shí)現(xiàn)了這個(gè)接口。修改IBookDAO.java,加上如下代碼:public Book getBookById(Integer bookid);/根據(jù)圖書號得到圖書修改BookDAO.java 實(shí)現(xiàn)getBookById()方法public Book getBookById(Integer bookid) / TODO Auto-generated method stubSession session=getSession();Book book=(Book)session.get(Book.class, bookid);session.close();return book;4. Service在IBookService 接口中定義getBookById(),根據(jù)圖書號獲得圖書,在BookService中實(shí)現(xiàn)此方法。修改IBookService.java,加上getBookById()的定義:/根據(jù)圖書號得到圖書public Book getBookById(Integer bookid);修改BookService.java,實(shí)現(xiàn)getBookById()方法。public Book getBookById(Integer bookid) / TODO Auto-generated method stubreturn bookDAO.getBookById(bookid);5. Action創(chuàng)建ShoppingAction,通過addToCart()方法,完成將圖書放入購物車中。ShoppingAction.java 代碼如下:package com.sxjiang.bookstore.action;import java.util.Map;import com.opensymphony.xwork2.ActionContext;import com.opensymphony.xwork2.ActionSupport;import com.sxjiang.bookstore.model.Cart;import com.sxjiang.bookstore.service.IBookService;import com.sxjiang.bookstore.vo.Book;import com.sxjiang.bookstore.vo.Orderitem;public class ShoppingAction extends ActionSupport private Integer bookid;private int quantity;private IBookService bookService;public String addToCart() throws ExceptionBook book=bookService.getBookById(bookid);Orderitem orderitem=new Orderitem();orderitem.setBookid(book.getBookid();orderitem.setQuantity(quantity);Map session=ActionContext.getContext().getSession();Cart cart=(Cart)session.get(cart);if(cart=null)cart=new Cart();cart.addBook(bookid, orderitem);session.put(cart,cart);return SUCCESS;public String updateCart() throws ExceptionMap session=ActionContext.getContext().getSession();Cart cart=(Cart)session.get(cart);cart.updateCart(bookid, quantity);session.put(cart, cart);return SUCCESS;public Integer getBookid() return bookid;public void setBookid(Integer bookid) this.bookid = bookid;public int getQuantity() return quantity;public void setQuantity(int quantity) this.quantity = quantity;public IBookService getBookService() return bookService;public void setBookService(IBookService bookService) this.bookService=bookService;6. 配置struts.xml 和applicationContext.xml在struts.xml 中增加名為:addToCart 的Action 代碼如下:/addToCart_result.jsp在applicationContext.xml 中增加shoppringAction 的bean 的配置7. 編寫JSP 頁面修改browseBookPaging.jsp,代碼如下:Insert title hereimg src=/bookstore/picture/width=100書名:價(jià)格:元數(shù)量:input type=hidden value= name=bookid首頁a href=browseBookPaging.action?currentPage=上一頁a href=browseBookPaging.action?currentPage=下一頁a href=browseBookPaging.action?currentPage=尾頁當(dāng)前第頁,總共頁二、顯示購物車開發(fā)步驟:l Modell Actionl Struts.xml applicationContext.xmll JSP1. ModelCart 模型中的updateCart 方法用于更新購物車。修改Cart.java 加入下列代碼:public void updateCart(Integer bookid,int quantity)Orderitem orderitem=items.get(bookid);orderitem.setQuantity(quantity);items.put(bookid, orderitem);2. ActionShoppingAction 中的UpdateCart 用于完成更新購物車的功能。修改shoppingAction.javapublic String updateCart() throws ExceptionMap session=ActionContext.getContext().getSession();Cart cart=(Cart)session.get(cart);cart.updateCart(bookid, quantity);session.put(cart, cart);return SUCCESS;3. struts.xml applicationContext.xmlstruts.xml/showCart.jspapplicationContext.xml 沒有變化4. JSP 頁面創(chuàng)建showCart.jsp 文件Insert title here您購物車中圖書 書 名定 價(jià)數(shù) 量操 作input type=text name=quantity value= size=4/消費(fèi)金額:元 對不起,您還沒有選購圖書!修改index.jsp 加入購物車超鏈接購物車三、結(jié)帳開發(fā)步驟:l DAOl Servicel Actionl Struts.xml applicationContext.xmll JSP1. DAO主要涉及的類和接口為IOrderDAO 接口和OrderDAO 類。IOrderDAO 接口中定義了insertOrder 方法,用來將插入到orderIOrderDAO.javapackage com.sxjiang.bookstore.dao;import com.sxjiang.bookstore.vo.Orders;public interface IOrderDAO public Orders insertOrder(Orders order);OrderDAO.javapackage com.sxjiang.bookstore.dao.impl;import com.sxjiang.bookstore.dao.BaseDAO;import com.sxjiang.bookstore.dao.IOrderDAO;import com.sxjiang.bookstore.vo.Orders;import org.hibernate.Session;import org.hibernate.Transaction;public class OrderDAO extends BaseDAO implements IOrderDAOpublic Orders saveOrder(Orders order) Session session = getSession();Transaction tx = session.beginTransaction();session.save(order);mit();session.close();return order;2. ServiceService 層主要的類和接口為接口IOrderService , 這個(gè)接口定義了saveOrder 方法,用于結(jié)帳。OrderService 具體實(shí)現(xiàn)了這個(gè)接口。創(chuàng)建IOrderService.javapackage com.sxjiang.bookstore.service;import com.sxjiang.bookstore.vo.Orders;public interface IOrderService public Orders saveOrder(Orders order);創(chuàng)建OrderService.javapackage org.bookstore.service.impl;import com.sxjiang.bookstore.dao.IOrderDAO;import com.sxjiang.bookstore.service.IOrderService;import com.sxjiang.bookstore.vo.Orders;public class OrderService implements IOrderService private IOrderDAO orderDAO;public void setOrderDAO(IOrderDAO orderDAO) this.orderDAO = orderDAO;public Orders saveOrder(Orders order) return orderDAO.saveOrder(order);3. Action使用ShoppingAction 類的checkOut()完成結(jié)帳功能,類圖如圖6-10 所示。修改ShoppingAction.javapublic String checkout() throws ExceptionMap session=ActionContext.getContext().getSession();User user=(User)session.get(user);Cart cart=(Cart)session.get(cart);if(user=null | cart=null)return ERROR;Orders order=new Orders();order.setOrder
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 代理商促銷活動(dòng)方案
- 代表通道活動(dòng)方案
- 代駕公司交警隊(duì)活動(dòng)方案
- 以活動(dòng)助力活動(dòng)方案
- 儀式如何策劃活動(dòng)方案
- 價(jià)格活動(dòng)策劃方案
- 企業(yè)參觀破冰活動(dòng)方案
- 仿古演藝活動(dòng)策劃方案
- 企業(yè)書捐贈(zèng)活動(dòng)方案
- 企業(yè)元旦聯(lián)誼活動(dòng)方案
- T/CIMA 0089-2023多參數(shù)智能水表
- 2025年河北省中考乾坤押題卷數(shù)學(xué)試卷B及答案
- 2025至2030中國船用甲板機(jī)械市場供需平衡調(diào)查與前景預(yù)測研究報(bào)告
- 期末真題匯編 12 非連續(xù)性文本閱讀(含答案)-七年級語文下冊(統(tǒng)編版2024)
- 河北大學(xué)《民法學(xué)》2023-2024學(xué)年第二學(xué)期期末試卷
- 2025年中考語文二輪復(fù)習(xí):字音 練習(xí)題(含答案)
- 港口上崗證考試試題及答案
- 臨床護(hù)理敏感質(zhì)量指標(biāo)解讀
- 中藥種植施工方案
- 廣東省深圳市31校2025年中考物理一模試卷(含答案)
- 23《“蛟龍”探海》公開課一等獎(jiǎng)創(chuàng)新教學(xué)設(shè)計(jì)
評論
0/150
提交評論