创建一个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;
接下来的实战中,我会整理我遇到的问题以及解决办法(这是相当费时间的)
- 首先呢,报错“Whitelabel Error Page”翻译过来就是白标错误页(这个问题起码困了我5个小时),发生这个错误的原因是前端取不到数据的问题,我的是数据库的问题
数据库中有 A ,B 两个表 ,A表中的 tid 与 B表中的主键id相对应 ,但由于我没给A表设置外键,所以在插入数据时,可以任意插入 。 但是,在后端从数据库中获取数据时,我写的sql用到了A ,B两表连接 , 这时候就出现了问题, A 中 有一部分 tid 字段 没有在 B中出现,此时,查询数据的语句会抛出异常 。也就导致了上述问题。
如何解决 :
1、仔细检查数据库表,查看主外键是否设置 , 数据插入是否遵守相应的规则
2、删除数据库“不对应 / 错误”的数据 -
因为在我们自己做开发的时候,尽管代码跟老师一模一样,但我们都忽略了一点也是最重要的一点那就是数据库的数据不同,由于老师没给数据,我们就想当然得自己随便插入几条测试数据了切记要把主键和外键的数据对应起来
-
其实问题得不到解决还是因为自己的无知,昨天我并没有看我的报错信息而是直接去这个视频下的评论区找答案,恰巧有人跟我的问题一样。受老师的回复的启发${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>