千家信息网

怎么用Thymeleaf创建Spring Boot项目

发表于:2024-10-23 作者:千家信息网编辑
千家信息网最后更新 2024年10月23日,这篇"怎么用Thymeleaf创建Spring Boot项目"文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下
千家信息网最后更新 2024年10月23日怎么用Thymeleaf创建Spring Boot项目

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

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

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

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

            org.thymeleaf            thymeleaf            3.0.11.RELEASE        

一、处理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 = "";        String result = templateEngine.process(html, ctx);        System.out.println(result);    }}

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

根据输出可知,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 = "";        String result = templateEngine.process(xml, ctx);        System.out.println(result);    }}

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

三、处理资源文件

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

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

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()',控制台输出:

四、变量处理

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

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

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()',控制台输出:

五、遍历集合

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

姓名

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 datas = new ArrayList();        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()',控制台输出:

张三
李四

六、设置前缀与后缀

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

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()',控制台输出:

七、Spring Boot中整合Thymeleaf

1、pom.xml加入Thymeleaf依赖:

            org.springframework.boot            spring-boot-starter-thymeleaf        

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

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

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

        Title    

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

package com.example.demo;import org.springframework.stereotype.Controller;import org.springframework.ui.Model;import org.springframework.web.bind.annotation.RequestMapping;@Controllerpublic class DemoController {    @RequestMapping("/test")    public String test(Model model){        model.addAttribute("userName", "lc");        return "test";    }}

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

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

0