最近由于新型冠状病毒影响,推迟了上班时间,闲来无事,准备学习下SpringBoot,之前虽然用过,但是只是单纯用用,总是感觉懵懵的,所以这次正好趁这个时间,好好了解下SpringBoot.果然是万事开头难,之前都是在公司根本不用管配置jar包啥的,只需要写业务就好,没想到这次新建一个SpringBoot项目就遇到了一个不大不小的问题,耗费将近一整天的时间.
问题出在哪呢,就是在controller跳到一个ftl页面,没有任何业务逻辑,毕竟刚开始肯定是想着 把项目先跑起来.结果死活跳不过去.
一直报这个错.我就很奇怪呢,我还没什么代码都没开始写呢.因为我是看着学习视频,跟着操作的,我敢肯定操作绝对是一模一样,毕竟没几行代码.可是为什么视频里面的就可以正常跳转了,我反复试了好多次,还是同样的问题.我只好去把视频里的源码下下来,然后在我的idea里面运行,果然也是同样的问题(其实应该早点这么操作的,省的自己不停的新建项目,总感觉是自己哪里建的有问题).这下我就更疑惑了,这是为什么,到现在我也没弄清楚.
没办法,只能去百度了,百度主要是以下三个原因.
原因1:
Application启动类的位置不对.要将Application类放在最外侧,即包含所有子包
原因:spring-boot会自动加载启动类所在包下及其子包下的所有组件.
原因2:
在springboot的配置文件:application.yml或application.properties中关于视图解析器的配置问题:
当pom文件下的spring-boot-starter-paren版本高时使用:
spring.mvc.view.prefix/spring.mvc.view.suffix
当pom文件下的spring-boot-starter-paren版本低时使用:
spring.view.prefix/spring.view.suffix
原因3:
控制器的URL路径书写问题
@RequestMapping(“xxxxxxxxxxxxxx”)
实际访问的路径与”xxx”不符合.
但是这三个原因很快被我排除了,第一个和第三个不可能,视频中也没没有任何写任何配置,所以第二点也被我排除了,没办法只能继续百度,一个个尝试,最后终于找到一个可用的办法,就是在配置文件里面加上视图解析器的配置.
百度上是
spring.freemarker.suffix=.html,
因为我的是freemark,所以我改成了
spring.freemarker.suffix=.ftl,
结果重启项目,运行,居然成功了.
没想到最后还会配置的问题,问题虽然解决了,可是我还是很疑惑,为什么视频里的没加却可以跳转呢,而且我都把他的源码试过,也不行,希望有大神看到能告诉我下.