关于SpringBoot2.2.5整合Thymeleaf3.0.11的问题(配置了view-names)

版本截图:


关于SpringBoot2.2.5整合Thymeleaf3.0.11的问题(配置了view-names)_第1张图片

 

问题描述:


yml配置Thymeleaf的viewNames

thymeleaf:
    view-names: index.html, login.html
    enabled: true
    encoding: UTF-8
    mode: HTML
    cache: false
    prefix: classpath:/templates/
    suffix: .html
    template-resolver-order: 3

在配置了view-names属性后,发现请求html文件出现404错误;

 

调试过程 


由于springboot默认开启info级别日志,所以几乎没有调试信息;

遂调整日志级别到trace

看到日志记录

2020-03-06 13:16:39.491 TRACE 25646 --- [nio-8080-exec-2] o.t.spring5.view.ThymeleafViewResolver   : [THYMELEAF] View "index" cannot be handled by ThymeleafViewResolver. Passing on to the next resolver in the chain.

想到可能是需要单独实现一个视图解析类

关于SpringBoot2.2.5整合Thymeleaf3.0.11的问题(配置了view-names)_第2张图片

再次请求该视图时,可以看到新的日志记录

关于SpringBoot2.2.5整合Thymeleaf3.0.11的问题(配置了view-names)_第3张图片

此时页面也能够进行访问了。

 

相关补充


进一步调试发现

在默认的视图处理方法中,创建视图会先去匹配 当前视图 与 viewNames中配置的视图

由于在配置视图的地方写的是index.html 所以才造成了404错误

 ( ╯-_-)╯┴—┴ (ノ—_—)ノ~┴————┴ (╯-_-)╯╧╧ (ノ*-_-*)ノ┴—┴

唉,所以最终的原因还是没有用通配符造成的,

不过这次的源码跟踪还是有所收获。

关于SpringBoot2.2.5整合Thymeleaf3.0.11的问题(配置了view-names)_第4张图片

关于SpringBoot2.2.5整合Thymeleaf3.0.11的问题(配置了view-names)_第5张图片

你可能感兴趣的:(日常问题,spring,spring,boot)