购物车实现分析及工程搭建、商品详情页面对加入购物车进行改造、添加购物车、展示购物车列表、修改购物车商品数量、删除购物车商品及购物车总结

购物车实现分析及工程搭建

关于购物车模块,京东和淘宝并不一样,京东允许用户在没有登录的情况下就使用购物车,而且加到购物车里面的商品可以一直保存着(其实是放到了Cookie当中,如果清空了Cookie也就清空购物车了)。而淘宝则是必须先登录才能将商品添加到购物车当中,就用户体验来说,京东的购物车模块用户体验更好。

我们看下京东购物车,如下图所示,可以看到域名是cart.jd.com,这与商品详情页面的item.jd.com是不一样的,说明京东的购物车模块是个单独的工程。

我们搭建购物车工程只需要搭建web工程就可以了,不需要服务端,这是因为购物车里面的商品信息,我们可以通过taotao-manager服务来获取。

下面我们便新建taotao-cart-web工程,打包方式是war

下面我们便配置下pom.xml文件,我们可以参考taotao-item-web工程的pom.xml文件,把freemarker和activemq的依赖去掉,因为购物车模块用不到这些。然后将tomcat插件的端口号改为8089

把spring目录下的springmvc-activemq.xml文件删除掉,然后修改springmvc.xml,配置包扫描目录并且在src/main/java目录下新建这个包,dubbo服务名称改为"taotao-cart-web"。引用的item服务不用动,因为我们查询商品刚好就是用的item服务。

下面我们把taotao-item-web工程下面的web.xml复制到taotao-cart-web工程的webapp目录下,只不过需要先建一个名为"WEB-INF"的目录,然后粘贴到WEB-INF目录下,如下图所示,我们将原来所有叫taotao-item-web名字地方都改为taotao-cart-web

这样,我们的taotao-cart-web工程便搭建完了。

商品详情页面对加入购物车进行改造

我们访问淘淘商城首页(前提是启动了所有的服务及工程,虽然有个别工程用不上,不过也没关系),在搜索框中输入要搜索的商品,我以前添加过"金立M2017"这款手机,我就搜索它。

我们再点击这款手机,查看详情

如果我们这时点击上图的"加入购物车",如下图所示,可以看到地址并不正确,而且请求信息中没有商品数量信息,因此我们需要对原有商品详情页面购物车这一块进行改造。

我们找到taotao-item-web工程下的item.jsp文件,搜索"购物车"

为了在请求url中带上商品数量参数,我们定义一个函数addCart
function addCart(){
//加入购物车前先取商品数量
var num = KaTeX parse error: Expected 'EOF', got '#' at position 3: ("#̲buy-num").val()…{item.id}.html?num="+num;
}

其中商品数量是通过id选择器来获取的,关于商品数量的代码在下图所示的位置。
写好了addCart函数,我们回到关于购物车代码那块,将原来href里面的内容改为href=“javascript:addCart()”

修改完之后,我们来刷新商品详情页面,然后点击加入购物车,这时我们可以看到跳转后的地址栏中地址是:http://localhost:8089/cart/add/149365509502985.html?num=1,链接地址已经指向我们的购物车工程了,而且带上了商品数量参数,不过此时由于还没有实现购物车,因此页面显示"无法访问此网站"。

我们再到商品详情页面,将商品数量添加到3,然后点击"添加购物车"
这时跳转后地址栏中的地址是http://localhost:8089/cart/add/149365509502985.html?num=3,可以看到只是后面的num的值变成了3,这说明我们改造好了。

添加购物车

上节课我们一起改造了下商品详情页面关于购物车的部分,这节课我们一起分析下添加购物车功能。

我们以京东为例,比如我们选了一款手机,然后点击"加入购物车",注意,此时我们并没有登录。

我们会看到如下图所示界面,可以看到,我们并没有直接进入购物车列表,而是到了一个中间页面,只是提醒我们成功加入购物车。如果想进购物车列表的话,就点击那个"去购物车结算"按钮。

我们模仿京东的购物车功能,既然要展示成功加入购物车页面,我们就要先把相关静态资源文件添加到taotao-cart-web工程当中。将css、images、js复制粘贴到taotao-cart-web工程的webapp目录下,把jsp粘贴到webapp目录下的WEB-INF目录下。

下面我们再看下我们的商品详情页面以及添加购物车的情况,我们首先要启动所有服务,然后启动除了taotao-cart-web工程之外的所有工程,商品详情页面如下

我们点击上图的"加入购物车",会看到如下图所示界面,可以看到加入购物车的请求当中包含了商品ID以及商品数量。我们可以根据商品ID查询出商品详情。

下面我们来完成添加购物车的功能,由于查询商品详情我们的taotao-manager服务已经实现过了,因此我们只需完成web工程即可。我们在taotao-cart-web工程中添加一个Controller,如下图所示,在Controller中处理逻辑并最终返回逻辑视图。CartController

其中用到了常量,常量我们都放到配置文件当中

下面我们来测试一下,我们启动taotao-cart-web加入"clean tomcat7:run"

taotao-cart-web工程启动后,我们再到商品详情页面点击"加入购物车",可以看到如下图所示界面,可以看到正常显示了"成功添加商品到购物车"的页面。

展示购物车列表

上节课我们一起学习了下添加购物车功能,这节课我们一起学习下展示购物车列表。

我们点击下图的"去购物车结算"。

可以看到会报404的错误,这是由于我们还没实现购物车列表展示功能,但是我们可以从地址栏中看到请求的url,如下图所示。

我们首先看一下购物车商品列表的jsp文件,如下图所示。我们需要给这个jsp页面传一个集合"cartList"

有了请求URL和页面需要的数据,我们现在来写Controller

下面我们重启taotao-cart-web工程,重启后,刷新刚才报404错误的那个页面,可以看到如下图所示购物车列表,当前该手机数量是1(因为我就向购物车添加了一个)

现在我们再回到商品详情页面,点那个"+",让商品数量变成2,然后点击"加入购物车",这样加上刚才添加的1,购物车现在一共应该有3个。

点击上图的加入购物车会看到下图所示界面。

点击上图的"去购物车结算",可以看到如下图所示界面

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值