📄 shopcart2.txt
字号:
1.实现IShopcart接口,它的实现类提供一个Map的实例变量,其中key存放productid,value存放这个productid对应的orderline对象.其他还需要提供的方法有:
一.addProduct(Product product)
这个方法可以把一个产品加入到购物的实例变量Map对象中,但有两种情况:如果购物车中已经存在这样的product.
还有就是购物车中没有这样的product.
二.removeAllProducts()
这个方法就是把购物车的map对象给清空,调用它的clear方法
三.removeProduct(Long productid)
这个方法可以把购物车的map对象中key为这个productid的对象删除.
四.updateProduct(Long productid,Long number)
首先根据productid把对应的value(orderline)取出来,然后调用orderline的setAmount方法.
五.getTotalPrice
对map的所有的value值,也就是所有的orderline,对返回的集合类型的对象遍历,取到orderline里面product对象的price和orderline的amount相乘,可以得到一个orderline的总额.
然后再把所有orderline的总额相加.
六.getOrderlines
返回map里面所有的value值.
2.写一个HttpSessionListener用来监听session的创建,当有session被创建,在listener里面就new一个购物车对象,然后把它放到session里面.
3.写addProductAction
根据页面上传过来的productid,去查找到对应的product对象,把session里面的购物车对象取出,然后调用它里面的addProduct这个方法,shopcart.jsp就可以从session里面取到购物车里面所有的orderline对象用来显示.
写removeProductAction
根据页面上传过来的productid,然后取到当前session里面的shopcart对象.然后调用shopcart对象的removeProduct方法.
然后去调用shopcart对象里面的getOrderlines这个方法.然后去看看orderline的数量大于0还是等于0.当大于0时,forward到shopcart.jsp页面.如果等于0,就forward到index.jsp
写removeAllProductAction
获取当前session的购物车对象,然后调用它的removeAllProducts这个方法.就forward到index.jsp页面
写updateAction
取到页面上传过来的productid以及amount,然后获取当前session中的购物车对象.然后调用updateProduct这个方法,并把上面两个参数传给这个方法.forward到shopcart.jsp
写shopCartAction
取到当前session里面的购物车对象,调用它的getOrderlines这个方法,然后去看看orderline的数量大于0还是等于0.当大于0时,forward到shopcart.jsp页面.如果等于0,就forward到index.jsp
4.把shopcart.html改写成shopcart.jsp,动态从session里面把所有的orderline取出来用来显示.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -