牛客网牛客社区项目--day4 开发社区首页问题总结

创建一个discuss_post表(纯手打,分享给大家)

希望大家坚持开发不要气馁,数据的源码模版可以私信我

CREATE table discuss_post(
id int(11)NOT NULL AUTO_INCREMENT,
user_id VARCHAR(45)DEFAULT NULL,
title VARCHAR(100)DEFAULT NULL,
content text,
type int(11) DEFAULT NULL COMMENT '0-普通;1-置顶;',
status int(11) DEFAULT NULL COMMENT '0-正常;1-精华;2-拉黑;',
create_time TIMESTAMP NULL DEFAULT NULL,
comment_count int(11)  DEFAULT NULL,
score DOUBLE DEFAULT NULL,
PRIMARY KEY(id),
KEY index_user_id(user_id))
ENGINE=INNODB AUTO_INCREMENT=281 DEFAULT CHARSET=utf8;

接下来的实战中,我会整理我遇到的问题以及解决办法(这是相当费时间的)

  1. 首先呢,报错“Whitelabel Error Page”翻译过来就是白标错误页(这个问题起码困了我5个小时),发生这个错误的原因是前端取不到数据的问题,我的是数据库的问题

       数据库中有 A ,B 两个表 ,A表中的 tid 与 B表中的主键id相对应 ,但由于我没给A表设置外键,所以在插入数据时,可以任意插入 。 但是,在后端从数据库中获取数据时,我写的sql用到了A ,B两表连接 , 这时候就出现了问题, A 中 有一部分 tid 字段 没有在 B中出现,此时,查询数据的语句会抛出异常 。也就导致了上述问题。

    如何解决 :

    1、仔细检查数据库表,查看主外键是否设置 , 数据插入是否遵守相应的规则
    2、删除数据库“不对应 / 错误”的数据

  2. 因为在我们自己做开发的时候,尽管代码跟老师一模一样,但我们都忽略了一点也是最重要的一点那就是数据库的数据不同,由于老师没给数据,我们就想当然得自己随便插入几条测试数据了切记要把主键和外键的数据对应起来

  3. 其实问题得不到解决还是因为自己的无知,昨天我并没有看我的报错信息而是直接去这个视频下的评论区找答案,恰巧有人跟我的问题一样。受老师的回复的启发${map.user.headerUrl}我就去找获取值的方法

  • 网上说把"$"换成"#",这样治标不治本。还要去关闭Thymeleaf的提示信息

  • 视频下面的讨论中还有说要删除application.properties然后重新写的

今天看了报错信息后,有说让关闭电脑防火墙的,然后就是数据库的问题(这才是根本问题)

在纠错中,我复盘了整个项目。首先是底层的查询方法,用户表中要根据discusspost传来的user_id当做id来查询,我又重新测试了user的查询方法发现并没有问题,那service层调用该方法应该也会出来我们想要的用户。Homecontroller是编写代码的重灾区,千万不能出错。编写逻辑是先插dis表,然后根据dis表的user_id来查user表,然后把这两部分数据(post和user)装填到一个Map集合里在把map集合装到List集合里以便显示

  model.addAttribute("discussPosts",discussPosts);
        return "/index";

往前端发送Model和View

  4.百度的很多都过时了,thymeleaf2018年时做了一次改进,这是正确的写法,但是我不知道之前的写法废弃了没,会不会报错,因为我没试我也不敢说这是唯一正确写法。

但是这不是今天我要说的重点,重点是这么写没问题,但是!但是idea会提示错误

	<a class="page-link" th:href="@{${page.path}(current=${page.current-1})}">上一页</a></li>

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

无聊到爆肝

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值