基于springboot与Thymeleaf模板整合的新手常遇见的坑

虽说springboot与Thymeleaf整合十分的方便,但是这里面有很大的几个坑,作为初学springboot的新手来说肯定会遇到,而且问度娘也不一定解决了,以下,就是我初学springboot时经常遇到的几个坑。

 

       (一)、首先,在html页面里面严禁出现这种书写方式

            <a href="login.html" th:href="@{/providerAdd.html}">退出</a>

                     由于我们要用到Thymeleaf的标签,然后在便签里面写的是跳转的路径,记住,这里面写的一定是自己在controller层里面写的URL路径,而不是需要跳转html页面的路径,如果你要写成这样,它会默认当成controller层的URL路径,很明显你在controller层里面并没有写这样的URL路径,所以它会报404错误,找不到。

                               基于springboot与Thymeleaf模板整合的新手常遇见的坑

                      解决很简单,你只需要在controller层里面写个跳转到该页面的方法就行了,相比于我们之前学的SpringMVC来说确实多写一步,但是jsp几乎已经被淘汰了,所以一定要与时俱进。

                                //跳转到providerAdd.html页面
                                @RequestMapping("/goto_providerAdd")
                                public String goto_providerAdd(){
                                return "providerAdd";     //Thymeleaf默认会帮我们拼串
                              }

            (二)、然后,springboot与Thymeleaf整合的时候,有的地方会莫名其妙的爆红,这里需要注意一点,有的地方爆红对结果没影响,但是有的地方爆红就是错误了,就比如在service层的实现类里面注入spring容器就会爆红

                           基于springboot与Thymeleaf模板整合的新手常遇见的坑

                         这其实是没有问题的,就是Thymeleaf与springboot整合的扫描包的内部问题,对结果没有影响,我们不用管就行了。除了这里会爆红,还有一个地方会爆红

                                       基于springboot与Thymeleaf模板整合的新手常遇见的坑

                          这里是写的基于get提交方式的一个超链接,需要拼接一下字符串,但是爆红也对结果没有影响。

 

         (三)、还有一个更重要的一点,(我在这里栽了好多天,天天上度娘,天天上度娘,我都快气疯了)

                        由于以前学ssm的时候,controller层里面的数据都喜欢用session存到session域中,也是因为它的范围比较大,所以都用这个,但是转到springboot里面,有一大串爆红,我一开始还以为跟前面的那两情况一样了,不用管,可是运行之后却显示不出来数据,我真的服。

                        controller层:

                                           基于springboot与Thymeleaf模板整合的新手常遇见的坑

                         html代码爆红:

                                      基于springboot与Thymeleaf模板整合的新手常遇见的坑

                         访问浏览器结果:

                                  基于springboot与Thymeleaf模板整合的新手常遇见的坑

                      真的好气人,查了好几天百度也没查出来结果,然后我就想起来我以前看过的网上的视频,视频上用的都是Model,然后我就想试试看行不行,一试竟然对了,醉,谁能想到是这里错了。

                          改过的controller层:

                                                基于springboot与Thymeleaf模板整合的新手常遇见的坑

                         html页面立马不爆红了:

                                             基于springboot与Thymeleaf模板整合的新手常遇见的坑

                      访问浏览器结果:

                                          基于springboot与Thymeleaf模板整合的新手常遇见的坑

                    访问浏览器立马出现结果了,其实我也不知道为什么,我也没查出来为什么,还是等疫情结束回学校问老师吧。

 

     (四)、最后还有一点,就是用了Thymeleaf之后,html页面URL地址的书写方式,没有传参的URL路径还是跟SpringMVC的书写方式差不多,但是加了参数之后就不一样了。      

                   <a href="billView.html" th:href="@{/bill/findById.do(bid=${bill.bid})}">

             因为用Thymeleaf标签,它这个加传入的参数必须这样来加,还用以前的SpringMVC格式肯定会爆红,而且访问浏览器还会出现一个Thymeleaf模板解析错误的提示。(如果你要是在学习过程中出现Thymeleaf模板解析错误的提示,无非就两种错误,前提是你的controller层的路径,没有书写错误

                           1、第一种就是你html中URL路径书写错误

                           2、另一种就是你引入Thymeleaf坐标的时候,书写错误

                        基于springboot与Thymeleaf模板整合的新手常遇见的坑

                          以上就是两种情况 )

             这个是一个常见的RequestMapping("")注解的传参方式,如果你要是用以get请求方式的传参:GetMapping("") ,就需要写另外一种方式了,如下:

                         基于springboot与Thymeleaf模板整合的新手常遇见的坑

             但是不推荐用get请求方式的提交,大家都懂!

 

好了,以上就是我在初学springboot过程中遇到的问题,然后在这分享一下,写的不好,勿喷,如果有跟我一样遇到这些情况的小伙伴们,希望能够帮到你们。