解决Springboot项目打包后的页面丢失问题(thymeleaf报错)

 更新时间:2021年11月11日 10:19:44   作者:清晨的第一抹阳光  
这篇文章主要介绍了解决Springboot项目打包后的页面丢失问题(thymeleaf报错),具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

Springboot项目打包后的页面丢失

遇到的问题目前找到两种

  • 返回视图路径以/开头,例如 /test/hello
  • 在thymeleaf页面中,引入的页面以/开头,例如:<footer th:replace="/index::footer"></footer>

代码书写规范:

    @GetMapping("/about-us")
    public String sysInfo(){
        return "students/about-us";
    }

错误写法:(不要在前面加入"/")

return "/students/about-us";

引入公共模板时,也不要加''/'

正确写法:

<header th:replace="main/sys-public :: stu-header"></header>

总结:在代码编写的过程中,要注意规范书写习惯,避免不必要的问题发生。

Springboot打包ThymeLeaf报错

开发环境

  • Spring Boot 2.0.2
  • Thymeleaf 3.0.9

现象

Boot 打包启动后报如下错

org.thymeleaf.exceptions.TemplateInputException: Error resolving template "/login", template might not exist or might not be accessible by any of the configured Template Resolvers at org.thymeleaf.engine.TemplateManager.resolveTemplate(TemplateManager.java:870) ~[thymeleaf-3.0.9.RELEASE.jar!/:3.0.9.RELEASE] at org.thymeleaf.engine.TemplateManager.parseAndProcess(TemplateManager.java:607) ~[thymeleaf-3.0.9.RELEASE.jar!/:3.0.9.RELEASE] at org.thymeleaf.TemplateEngine.process(TemplateEngine.java:1098) [thymeleaf-3.0.9.RELEASE.jar!/:3.0.9.RELEASE] at org.thymeleaf.TemplateEngine.process(TemplateEngine.java:1072) [thymeleaf-3.0.9.RELEASE.jar!/:3.0.9.RELEASE] at org.thymeleaf.spring5.view.ThymeleafView.renderFragment(ThymeleafView.java:354) [thymeleaf-spring5-3.0.9.RELEASE.jar!/:3.0.9.RELEASE] ...

判断为模板视图跳转错误

原因

配置文件错误,模板读取路径错误

解决办法

修改ThymeLeaf配置

具体操作

增加红色的部分

thymeleaf:
  mode: HTML
  cache: false
  prefix: classpath:/templates
<!--公共模板引用 -->
<head th:include="/template/head :: tableHeader"></head>
    /**
     * 页面路由
     * @param pageName 页面名称
     * @param model 基础model绑定常用值
     * @return
     */
    @ApiOperation(value = "请求页面",notes = "获取页面")
    @GetMapping(value = "/page/{pageName}")
    public String page(@PathVariable @ApiParam("页面名称")String pageName, @ApiIgnore Model model){
        initDefaultModel(model);
        String page = pageConfig.getPageMap().get(pageName);
        if(page == null){
            return "/404";
        }
        return page;
    }

开发环境中遗漏可以正常启动跳转,打包后文件结构产生变化需要指定。

参考文档

Spring Boot gives “TemplateInputException: Error resolving template” when running from jar

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • Spring JDBC 框架简介

    Spring JDBC 框架简介

    Spring JDBC 提供几种方法和数据库中相应的不同的类与接口。我将给出使用JdbcTemplate类框架的经典和最受欢迎的方法。本文给大家介绍Spring JDBC 框架的相关知识,感兴趣的朋友一起看看吧
    2021-12-12
  • SpringBoot任务调度器的实现代码

    SpringBoot任务调度器的实现代码

    SpringBoot自带了任务调度器,通过注解的方式使用。小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-12-12
  • java使用common-httpclient包实现post请求方法示例

    java使用common-httpclient包实现post请求方法示例

    这篇文章主要给大家介绍了关于java使用common-httpclient包实现post请求的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2018-08-08
  • java使用TimerTask定时器获取指定网络数据

    java使用TimerTask定时器获取指定网络数据

    java.util.Timer定时器,实际上是个线程,定时调度所拥有的TimerTasks。一个TimerTask实际上就是一个拥有run方法的类,需要定时执行的代码放到run方法体内,TimerTask一般是以匿名类的方式创建,下面的就用示例来学习他的使用方法
    2014-01-01
  • 浅谈Mybatis之参数传递的几种姿势

    浅谈Mybatis之参数传递的几种姿势

    在mybatis的日常开发中,mapper接口中定义的参数如何与xml中的参数进行映射呢?本文就详细的介绍一下,感兴趣的可以了解一下
    2021-09-09
  • Ubuntu 15下安装JDK1.8教程

    Ubuntu 15下安装JDK1.8教程

    这篇文章主要为大家详细介绍了Ubuntu 15下JDK1.8安装教程,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2016-12-12
  • SpringBoot+Redis布隆过滤器防恶意流量击穿缓存

    SpringBoot+Redis布隆过滤器防恶意流量击穿缓存

    本文主要介绍了SpringBoot+Redis布隆过滤器防恶意流量击穿缓存,文中根据实例编码详细介绍的十分详尽,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-03-03
  • nacos-discovery包名层级问题解决

    nacos-discovery包名层级问题解决

    这篇文章主要为大家介绍了nacos-discovery包名层级问题解决,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-07-07
  • java可变参数使用示例

    java可变参数使用示例

    这篇文章主要介绍了java可变参数使用示例,需要的朋友可以参考下
    2014-04-04
  • Jmeter工作原理及常见错误解析

    Jmeter工作原理及常见错误解析

    这篇文章主要介绍了Jmeter工作原理及常见错误解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-09-09

最新评论