收藏夹吃灰系列:Springboot配置Thymeleaf实现静态页面访问 | 超级详细,建议收藏!

Posted bug菌√

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了收藏夹吃灰系列:Springboot配置Thymeleaf实现静态页面访问 | 超级详细,建议收藏!相关的知识,希望对你有一定的参考价值。

一、前言

Springboot默认是不支持JSP的,默认使用thymeleaf模板引擎。所以这里介绍一下springboot结合Thymeleaf,实现模板实例以及途中遇到的问题。

二、配置与使用

1.引入jar。 在pom中加入thymeleaf对应的starter 依赖。

        <!--模板引擎Thymeleaf-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-thymeleaf</artifactId>
        </dependency>

2.在配置文件(application-dev.yml)中配置Thymeleaf模板参数。

#spring配置
spring:
  thymeleaf:
    cache: false
    mode: LEGACYhtml5
    prefix: classpath:/templates/
    suffix: .html

重要参数解说:

cache: 是否缓存,开发模式下设置为false,避免改了模板还要重启服务器,线上设置为true,可以提高性能。一般改为false。

mode:配置视图模板类型,如果使用html5需要配置成html5。

prefix:指定模板所在的目录。

suffix: 模板后缀。

 3.编写freemarker模板文件:

<!DOCTYPE HTML>
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:th="http://www.thymeleaf.org">
<head>
    <meta content="text/html;charset=UTF-8"/>
</head>
<body>
<h6>Thymeleaf 模板引擎</h6>
<table border="1" bgcolor="#f0ffff">
    <thead>
    <tr>
        <th>序号</th>
        <th>日志内容</th>
        <th>ip号</th>
        <th>创建时间</th>
    </tr>
    </thead>
<!--th:each表示循环遍历,和Vue一样-->
<tbody th:each="logList : ${list}">
<tr>
    <td th:text="${logList .id}"></td>
    <td th:text="${logList .content}"></td>
    <td th:text="${logList .ip}"></td>
    <td th:text="${logList .createTime}"></td>
</tr>
</tbody>
</table>
</body>
</html>

 附上:

Thymeleaf语法:

看官方文档是很好的一种学习方式,这里我找了一个pdf的Thymeleaf文档。

Thymeleaf官方文档pdf版下载链接:https://www.thymeleaf.org/doc/tutorials/3.0/usingthymeleaf.pdf

看一下Thymeleaf的使用语法:

4、接下来编写一个Controller,并放一些数据进去。

package com.system.xiaoma.controller;

import com.system.xiaoma.entity.LogInfo;
import com.system.xiaoma.service.ILogInfoService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;

import java.util.List;

/**
 * 日志模板页面
 */
@Controller
@RequestMapping("/page")
public class ThymeleafController {

    @Autowired
    private ILogInfoService logInfoService;
    
    @RequestMapping("/logList.html")
    public String getArticles(Model model) {
        //获取日志列表
        List<LogInfo> list = logInfoService.list();
        //存入数据
        model.addAttribute("list", list);
        return "logList";
    }
}

注意:

1、其中,你所return返回的是相对路径,比如你的模板路径于resources/templates/logList.html上;由于你在application-dev.yml已配置了根路径,即你只需要返回相对路径即可。

2、注意:只能使用注解是@Controller;这里若是直接使用@RestController,会自动将返回结果转为字符串。

 如下给大家演示一下,如果使用@RestController注解,该页面会如何展示?

 展示效果:果真是将return 返回的字符串给打印出来了。

 

而使用@Controller正确示范结果页,如下,表示成功取出数据并渲染展示。


三.注意事项:

注意可能途中会遇到此类问题:500错

Error resolving template [log/logList], template might not exist or might not be accessible by any of the configured Template Resolvers

其实很好理解,就是说你访问的静态模板页面路径不对,或者静态页面有语法错误,模板解析器无法访问;


解决方案:

第一步:检查 application-dev.yml文件对于页面模板的配置对不对,在resources下面创建templates文件夹,页面放于里面。

第二步:在controller里;直接返回“/logList”即可。

好啦,以上就是Springboot配置Thymeleaf实现静态页面访问 的全部内容啦,咱们下期再见。



 往期热文推荐:


 OK,今天的文章先写到这。如果问题还请及时批评指正。

❤如果文章对您有所帮助,就请在文章末尾的左下角把大拇指点亮吧!(#^.^#);

❤如果喜欢bug菌分享的文章,就请给bug菌点个关注吧!(๑′ᴗ‵๑)づ╭❤~;

❤对文章有任何问题欢迎小伙伴们下方留言或者入群探讨【群号:708072830】;

❤鉴于个人经验有限,所有观点及技术研点,如有异议,请直接回复参与讨论(请勿发表攻击言论,谢谢);

❤版权声明:本文为博主原创文章,转载请附上原文出处链接和本文声明,版权所有,盗版必究!(*^▽^*).

以上是关于收藏夹吃灰系列:Springboot配置Thymeleaf实现静态页面访问 | 超级详细,建议收藏!的主要内容,如果未能解决你的问题,请参考以下文章

收藏夹吃灰系列(十三):Springboot项目配置多数据源,实例演示 | 开箱即用,超级详细。

收藏夹吃灰系列(十三):Springboot项目配置多数据源,实例演示 | 开箱即用,超级详细。

收藏夹吃灰系列:实现springboot使用JDK自带的keytool生成SSL证书并配置HTTPS | 超级详细,建议收藏!

进收藏夹吃灰系列——Java基础快速扫盲

哇撒!这几个SpringBoot前后端分离项目(附源码),star过千,快去收藏夹吃灰吧。。。

在线工具推荐,还不抓紧加进收藏夹吃灰?