模仿天猫实战【SSM】——总结 (3)

之前的代码:

<c:forEach items="${propertyValues}" var="pv"> <tr> <td> <c:forEach items="${properties}" var="p"> <c:if test="${p.id==pv.property_id}">${p.name}</c:if> </c:forEach> </td> <td>${pv.value}</td> <td><a href="http://www.likecs.com/editPropertyValue?id=${pv.id}"><span></span></a></td> <td> <a href="http://www.likecs.com/deletePropertyValue?id=${pv.id}&category_id=${product.category_id}"><span></span></a></td> </tr> </c:forEach>

非常糟糕,逻辑就是错的。

模仿天猫实战【SSM】——总结

利用上面为 PropertyValue 添加的 Property 来完成功能:

模仿天猫实战【SSM】——总结

下面的 select 标签也是错的

模仿天猫实战【SSM】——总结

生成出来的代码是这样的:

模仿天猫实战【SSM】——总结

我想要绑定一个隐藏的 input ,看来这样写是不行的,搜索了一下,可以通过为 <select> 标签写 onchange 属性来完成:

模仿天猫实战【SSM】——总结

使用 Java 8 的新特性来排序

使用了 Java 8 的 Lambda 表达式来完成前端的排序工作:

模仿天猫实战【SSM】——总结

注册页

天猫的注册搞得很高大上的样子,淘宝也弄成了一样的,不是很好模仿出效果:

模仿天猫实战【SSM】——总结

所以照着改了一改,弄成了这个样子:

模仿天猫实战【SSM】——总结

在前端通过 JS 来判断完成确认密码的功能,然后这是注册成功的页面:

模仿天猫实战【SSM】——总结

发现 OrderItem 少设计了一个字段

这是最初设计的数据库表与表之间的关系:

模仿天猫实战【SSM】——总结

当我按照流程一步一步完成着项目,在完成立即购买这个功能时,我需要按照user_id来返回订单项时,不容易实现,我们需要为 OrderItem 增加一个字段(user_id):

CREATE TABLE `order_item` ( `id` INT(11) NOT NULL AUTO_INCREMENT COMMENT '唯一索引id', `product_id` INT(11) NOT NULL COMMENT '对应产品id', `order_id` INT(11) NOT NULL COMMENT '对应订单id', `user_id` INT(11) NOT NULL COMMENT '对应用户id', `number` INT(11) NULL DEFAULT NULL COMMENT '对应产品购买的数量', INDEX `fk_order_item_product` (`product_id`), INDEX `fk_order_item_order` (`order_id`), INDEX `fk_order_item_user` (`user_id`), PRIMARY KEY (`id`), CONSTRAINT `fk_order_item_order` FOREIGN KEY (`order_id`) REFERENCES `order_` (`id`), CONSTRAINT `fk_order_item_user` FOREIGN KEY (`user_id`) REFERENCES `user` (`id`), CONSTRAINT `fk_order_item_product` FOREIGN KEY (`product_id`) REFERENCES `product` (`id`) )COLLATE='utf8_general_ci' ENGINE=InnoDB;

然后运行 TestMybatisGenerator 来重新生成相关的文件.

更改 OrderItem 表中的 order_id 字段默认为空

order_id 是用于判断当前的 OrderItem 是否存在于购物车中的依据,最开始我们将这个字段设计为不能为空,那么就只能在购物车中存在,当我们不需要经过购物车而要直接购买的时候,就不能得到满足...

修复购物车逻辑问题

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zywgpy.html