iis服务器助手广告广告
返回顶部
首页 > 资讯 > 前端开发 > node.js >怎么用Thymeleaf创建Spring Boot项目
  • 636
分享到

怎么用Thymeleaf创建Spring Boot项目

2024-04-02 19:04:59 636人浏览 安东尼
摘要

这篇“怎么用Thymeleaf创建Spring Boot项目”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们

这篇“怎么用Thymeleaf创建Spring Boot项目”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“怎么用Thymeleaf创建spring Boot项目”文章吧。

Thymeleaf是一个表现层的模板引擎,一般被使用在WEB环境中。
Thymeleaf支持多种模板类型:html、XML、javascriptCSS和普通文本等,默认提供了6种模板处理模式:HTML、XML、TEXT、JAVASCRIPT 、CSS和RAW。最后一个RAW表示不会对模板进行处理。

开发环境:IntelliJ idea 2019.2.2
Spring Boot版本:2.1.8

新建一个名称为demo的Spring Boot项目。
pom.xml加入Thymeleaf依赖:

<dependency>
            <groupId>org.thymeleaf</groupId>
            <artifactId>thymeleaf</artifactId>
            <version>3.0.11.RELEASE</version>
        </dependency>

一、处理HTML

新建一个类HtmlTest.java

package com.example.demo;

import org.thymeleaf.TemplateEngine;
import org.thymeleaf.context.Context;

public class HtmlTest {
    public static void main(String[] args){
        TemplateEngine templateEngine = new TemplateEngine();
        Context ctx = new Context();
        String html = "<input type='' th:value='lc' />";
        String result = templateEngine.process(html, ctx);
        System.out.println(result);
    }
}

右键Run 'XmlTest.main()',控制台输出:

<input type='' value='lc' />

根据输出可知,TemplateEngine类会将含有Thymeleaf逻辑的HTML代码转换成纯HTML输出,这就是模板引擎的作用。

二、更换模板解析器

默认情况下,模板处理模式为HTML,可以设置不同的解析器。
新建一个类XmlTest.java

package com.example.demo;

import org.thymeleaf.TemplateEngine;
import org.thymeleaf.context.Context;
import org.thymeleaf.templatemode.TemplateMode;
import org.thymeleaf.templateresolver.StringTemplateResolver;

public class XmlTest {
    public static void main(String[] args){
        TemplateEngine templateEngine = new TemplateEngine();
        //新建模板解析器
        StringTemplateResolver resolver = new StringTemplateResolver();
        //设置模板模式为XML
        resolver.setTemplateMode(TemplateMode.XML);
        //将解析器设置到引擎实例中
        templateEngine.setTemplateResolver(resolver);
        Context ctx = new Context();
        String xml = "<bean id=\"bean1\" th:attr='class=com.example.demo'></bean>";
        String result = templateEngine.process(xml, ctx);
        System.out.println(result);
    }
}

右键Run 'HtmlTest.main()',控制台输出:

<bean id="bean1" class="com.example.demo"></bean>

三、处理资源文件

可以为模板引擎设置资源解析器,让它去找文件进行处理。

1、在src/main/resources下新建文件index.html,只保留下面一行代码

<input type='' th:value='lc' />

2、新建一个类 ClassLoaderTest.java

package com.example.demo;

import org.thymeleaf.TemplateEngine;
import org.thymeleaf.context.Context;
import org.thymeleaf.templateresolver.ClassLoaderTemplateResolver;

public class ClassLoaderTest {
    public static void main(String[] args) {
        TemplateEngine templateEngine = new TemplateEngine();
        //创建解析器
        ClassLoaderTemplateResolver resolver = new ClassLoaderTemplateResolver();
        //将解析器设置到引擎实例中
        templateEngine.setTemplateResolver(resolver);
        //处理classpath下的index.html
        String result = templateEngine.process("index.html", new Context());
        System.out.println(result);
    }
}

右键Run 'ClassLoaderTest.main()',控制台输出:

<input type='' value='lc' />

四、变量处理

可以通过Context实例设置变量值。

1、在src/main/resources下新建文件var.html

<input type='' th:value='${userName}' />

2、新建一个类 VarTest.java

package com.example.demo;

import org.thymeleaf.TemplateEngine;
import org.thymeleaf.context.Context;
import org.thymeleaf.templateresolver.ClassLoaderTemplateResolver;

public class VarTest {
    public static void main(String[] args) {
        TemplateEngine templateEngine = new TemplateEngine();
        ClassLoaderTemplateResolver resolver = new ClassLoaderTemplateResolver();
        templateEngine.setTemplateResolver(resolver);
        Context ctx = new Context();
        ctx.setVariable("userName", "lc");
        String result = templateEngine.process("var.html", ctx);
        System.out.println(result);
    }
}

右键Run 'VarTest.main()',控制台输出:

<input type='' value='lc' />

五、遍历集合

1、在src/main/resources下新建文件iteration.html

<table>
    <tr th:each="data : ${datas}">
        <td th:text="${data}">姓名</td>
    </tr>
</table>

2、新建一个类 IterationTest.java

package com.example.demo;

import org.thymeleaf.TemplateEngine;
import org.thymeleaf.context.Context;
import org.thymeleaf.templateresolver.ClassLoaderTemplateResolver;

import java.util.ArrayList;
import java.util.List;

public class IterationTest {
    public static void main(String[] args) {
        TemplateEngine templateEngine = new TemplateEngine();
        ClassLoaderTemplateResolver resolver = new ClassLoaderTemplateResolver();
        templateEngine.setTemplateResolver(resolver);
        List<String> datas = new ArrayList<String>();
        datas.add("张三");
        datas.add("李四");
        Context ctx = new Context();
        ctx.setVariable("datas", datas);
        ctx.setVariable("username", "lc");
        String result = templateEngine.process("iteration.html", ctx);
        System.out.println(result);
    }
}

右键Run 'IterationTest.main()',控制台输出:

<table>
    <tr>
        <td>张三</td>
    </tr>
    <tr>
        <td>李四</td>
    </tr>
</table>

六、设置前缀与后缀

1、在src/main/resources/templates下新建文件index.html

<input type='' th:value='lc' />

2、新建一个类 PrefixSuffixTest.java

package com.example.demo;

import org.thymeleaf.TemplateEngine;
import org.thymeleaf.context.Context;
import org.thymeleaf.templateresolver.ClassLoaderTemplateResolver;

public class PrefixSuffixTest {
    public static void main(String[] args) {
        TemplateEngine templateEngine = new TemplateEngine();
        ClassLoaderTemplateResolver resolver = new ClassLoaderTemplateResolver();
        resolver.setPrefix("/templates/");
        resolver.setSuffix(".html");
        templateEngine.setTemplateResolver(resolver);
        String result = templateEngine.process("index", new Context());
        System.out.println(result);
    }
}

右键Run 'PrefixSuffixTest.main()',控制台输出:

<input type='' value='lc' />

七、Spring Boot中整合Thymeleaf

1、pom.xml加入Thymeleaf依赖:

<dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-thymeleaf</artifactId>
        </dependency>

2、application.yml
备注,下面配置的值都为默认值,实际上可不配置。

spring:
  thymeleaf:
    mode: HTML
    prefix: classpath:/templates/
    suffix: .html

3、在src/main/resources/templates下新建文件test.html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
    <input type='' th:value='${userName}' />
</body>
</html>

4、新建一个控制器类 DemoController.java

package com.example.demo;

import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;

@Controller
public class DemoController {
    @RequestMapping("/test")
    public String test(Model model){
        model.addAttribute("userName", "lc");
        return "test";
    }
}

运行后,浏览器访问Http://localhost:8080/test
可看到输出结果。

怎么用Thymeleaf创建Spring Boot项目

以上就是关于“怎么用Thymeleaf创建Spring Boot项目”这篇文章的内容,相信大家都有了一定的了解,希望小编分享的内容对大家有帮助,若想了解更多相关的知识内容,请关注编程网node.js频道。

--结束END--

本文标题: 怎么用Thymeleaf创建Spring Boot项目

本文链接: https://www.lsjlt.com/news/88612.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作