A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

©   /  2018-6-23 18:01  /  1596 人查看  /  13 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

李思贤:工厂模式:
工厂模式+反射+配置文件完成程序解耦合. 方便以后程序的扩展,对程序底层进行切换的时候不用改源代码.用到了dom4j,要导2个包.

一个工厂工具类,一个配置文件.
解析XML  :dom4j
                        SAXReader reader =new SAXReader();
                        Document document = reader.read(BeanFactory.class.getClassLoader().getResourceAsStream("applicationContext.xml"));
                        //获得class中的内容
                        Element beanElement = (Element) document.selectSingleNode("//bean[@id='"+id+"']");
                        String value = beanElement.attributeValue("class");
                        System.out.println(value);
                        //反射生成实例
                        Class clazz = Class.forName(value);
                        return clazz.newInstance();


购物车代码实现:

封装2个实体:
购物项:商品,数量,小计  //小计get方法可由数量*商品价格得的.set方法不用了
购物车:购物项的集合(用map装),总计
购物车实体还要有方法 添加购物项方法+移除购物项方法+清空购物车方法.

加入购物车操作:
商品详情页面点击加入购物车:
添加到Servlet:(要传过去form表单,还要有2个隐藏字段 method 和 pid)
调用封装购物车的方法:购物车从Session中拿
接收参数:
页面跳转:(购物车页面),这里用转发会发生重复提交,所以用重定向.
接下来就是在jsp中显示了,这里要注意商品在购物项里,购物项在购物车里.
比如拿到商品名称:  ${ entry.value.product.pname }


清空购物车操作:
方法封装好了,点击清空,调到servlet.带着?Method=clearCart,在Servlet中调用clearCart方法就行了,重定向到cart.jsp.基本操作就完事了,想让购物车页面显示,”购物车空空的哦”,就要引入fn标签了,判断cart.map长度
c:if test="${ fn:length(cart.map) == 0}">
                        <h1>购物车空空的哦~~快去购物吧</h1>
                        <img  src="${ pageContext.request.contextPath }/image/Cart.jpg">
                </c:if>



移除购物项:
点击删除添加到Servlet,这里要传pid
调用Cart.removeCare方法

在删除标签一个点击事件....忍心删除?
判断 是->window.location.href="${ pageContext.request.contextPath }/CartServlet?method=removeCart&pid="+pid;



订单模块:
需求:点击提交订单,向订单表和订单项表插入记录,使用事物。
准备工作:创建表和实体

生成订单部分:
1点击提交订单;提交到Servlet;
2在Servlet中先封装Order对象,总金额从购物车中拿,订单用户从登陆信息中拿,设置订单项(遍历购物车Map中values,一步步拿到数据封装到orderItem中,最后订单项添加到订单中  order.getOrderItems().add(orderItem);)
调用业务层保存订单:
要用事务来保证插入表中.要插入数据向两张表中,订单表和订单项表.
这就插入成功了,此时要清空购物车.
页面跳转到订单页面。
在订单页面显示就可以
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马