之前的代码:
<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>非常糟糕,逻辑就是错的。
利用上面为 PropertyValue 添加的 Property 来完成功能:
下面的 select 标签也是错的
生成出来的代码是这样的:
我想要绑定一个隐藏的 input ,看来这样写是不行的,搜索了一下,可以通过为 <select> 标签写 onchange 属性来完成:
使用 Java 8 的新特性来排序使用了 Java 8 的 Lambda 表达式来完成前端的排序工作:
注册页天猫的注册搞得很高大上的样子,淘宝也弄成了一样的,不是很好模仿出效果:
所以照着改了一改,弄成了这个样子:
在前端通过 JS 来判断完成确认密码的功能,然后这是注册成功的页面:
发现 OrderItem 少设计了一个字段这是最初设计的数据库表与表之间的关系:
当我按照流程一步一步完成着项目,在完成立即购买这个功能时,我需要按照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 是否存在于购物车中的依据,最开始我们将这个字段设计为不能为空,那么就只能在购物车中存在,当我们不需要经过购物车而要直接购买的时候,就不能得到满足...
修复购物车逻辑问题