SpringBoot + Thymeleaf + MySQL 实现商品收藏功能:点赞按钮动态切换及数据操作
"根据您提供的代码和需求,这里有一些需要进行修改和补充的地方:\n\n1. 在recommend.html中,您需要将Uid传递给前端页面,可以通过model.addAttribute方法将Uid传递给recommend.html页面。\n 修改LikesController中的findUid方法如下:\n java\n @RequestMapping(\"/findUid\")\n public String findUid(Model model){\n List<Member> MemberList=likesService.findUid();\n model.addAttribute(\"memberList\",MemberList);\n model.addAttribute(\"Uid\", Uid); // 将Uid传递给前端页面\n return \"recommend\";\n }\n \n\n2. 在recommend.html中,您需要在button标签上添加th:onclick属性,以调用JavaScript函数goods_like。\n 修改recommend.html中的button标签如下:\n html\n <button type=\"submit\" th:if=\"${likes.getLike(good.goods_id,Uid) != null}\" th:onclick=\"'goods_like(this, ' + ${good.goods_id} + ', ' + ${Uid} + ', true)'\">\n <i class=\"fas fa-heart\"></i>\n </button>\n <button type=\"submit\" th:if=\"${likes.getLike(good.goods_id, Uid) == null}\" th:onclick=\"'goods_like(this, ' + ${good.goods_id} + ', ' + ${Uid} + ', false)'\">\n <i class=\"far fa-heart\"></i>\n </button>\n \n\n3. 在LikesController中的insertLike方法和deleteLike方法中,您需要从session中获取Uid。\n 修改LikesController中的insertLike方法和deleteLike方法如下:\n java\n @PostMapping(\"/insert\")\n public void insertLike(@RequestParam(\"goodsId\") int goodsId, @RequestParam(\"memberId\") int memberId, HttpSession session) {\n int Uid = (int) session.getAttribute(\"Uid\");\n likesService.insertLike(goodsId, memberId, Uid);\n }\n\n @PostMapping(\"/delete\")\n public void deleteLike(@RequestParam(\"goodsId\") int goodsId, @RequestParam(\"memberId\") int memberId, HttpSession session) {\n int Uid = (int) session.getAttribute(\"Uid\");\n likesService.deleteLike(goodsId, memberId, Uid);\n }\n \n\n4. 在LikesService和LikesServiceImpl中,需要修改insertLike方法和deleteLike方法的参数列表,添加Uid参数。\n 修改LikesService中的insertLike方法和deleteLike方法如下:\n java\n void insertLike(int goodsId, int memberId, int Uid);\n void deleteLike(int goodsId, int memberId, int Uid);\n \n\n 修改LikesServiceImpl中的insertLike方法和deleteLike方法如下:\n java\n @Override\n public void insertLike(int goodsId, int memberId, int Uid) {\n likesMapper.insertLike(goodsId, memberId, Uid);\n }\n\n @Override\n public void deleteLike(int goodsId, int memberId, int Uid) {\n likesMapper.deleteLike(goodsId, memberId, Uid);\n }\n \n\n5. 在LikesMapper中的insertLike方法和deleteLike方法中,需要修改SQL语句,将Uid加入到SQL语句中。\n 修改LikesMapper中的insertLike方法和deleteLike方法如下:\n java\n @Insert(\"INSERT INTO likes (goods_id, member_id, uid) VALUES (#{goodsId}, #{memberId}, #{Uid})\")\n void insertLike(int goodsId, int memberId, int Uid);\n\n @Delete(\"DELETE FROM likes WHERE goods_id = #{goodsId} AND member_id = #{memberId} AND uid = #{Uid}\")\n void deleteLike(int goodsId, int memberId, int Uid);\n \n\n请根据上述修改和补充的内容进行调整,以实现您的需求。\n\n注意:\n\n* 以上代码示例中,Uid 是用户登录后存储在 Session 中的用户 ID。\n* 确保您的 Likes 表中包含 uid 字段,用于存储用户 ID。\n* 在实际应用中,您可能需要根据您的具体情况进行调整和完善。\n\n希望以上修改和补充能帮助您解决问题。
原文地址: https://www.cveoy.top/t/topic/p58m 著作权归作者所有。请勿转载和采集!