最近在学习springboot,继承母版可以复用我们公共的界面内容,很方便。但是,我在使用thymeleaf layout时遇到了坑,我网上找了好多都是比较老的版本,在新版本中不能正常使用了。最后花时间解决了,这里记录下来,以便帮助自己或其他人不要踩坑。thymeleaf在springboot1.x和2.x有很大的区别。这里只说2.x,具体如下。
第一步:安装依赖
![img_2828ddeeb7171bd0bebbc31095822281.png](https://i-blog.csdnimg.cn/blog_migrate/1d4eb3c73b795b66ff2d8fa26678940a.png)
第二步:在项目的templates下新建一个母版html文件(如:base.html)
![img_2a440cf63b71ba03606717708b496a6c.png](https://i-blog.csdnimg.cn/blog_migrate/73d4a2512b699a98f81ba1704e010478.png)
第三步:在项目的templates编写子界面test.html:
![img_57a8656e098b20cddf42ec48c9c62b01.png](https://i-blog.csdnimg.cn/blog_migrate/e66c3394e5e027ce72f7ad5944d430e9.png)
第四步:编写控制器代码
![img_f2c41f14820781a24d4927bc58349c5d.png](https://i-blog.csdnimg.cn/blog_migrate/aacf5cc9179694da0d9e28579a907902.png)
第五步:运行测试:运行效果如下
![img_34361f4ebf971fd9c1f3d88753606b93.png](https://i-blog.csdnimg.cn/blog_migrate/13db7867600de7bb03ba18f4447700f0.png)
至此springboot thymeleaf layout实现母版功能就搞定了。
第六步:既然使用了母版,公共数据怎么传,总不会每个界面都传吧,多麻烦啊。当然是不需要这样麻烦的了,我们可以建一个控制器用于传递公共数据
![img_6826998612374a3dddcc26b3f5405699.png](https://i-blog.csdnimg.cn/blog_migrate/0b9f722425cfb5b90a6f3249b4acc845.png)
注意这个ModelAttribute是指定前面访问数据的变量名,那么接下来我们就能在base.html中使用它了
![img_8f21c7fcbf6cf742e07d4ca7beb082c8.png](https://i-blog.csdnimg.cn/blog_migrate/ba7f6c673bb10a7e23eb7bf0247e909a.png)
运行效果:
![img_bddf191c80474314ddeddc6765a72833.png](https://i-blog.csdnimg.cn/blog_migrate/071ce258601bff4b44c2b790798ea501.png)
第七步:总结
至此内容就介绍完了,我也是在学习的路上,不一定说得都是对的。如有问题欢迎留言,我们一起探讨。喜欢我第文章,记得关注哦!