1、thymeleaf入门及案例

模板引擎的工作原理:

 

下面学习的时thymeleaf模板引擎

 

thymeleaf官网: https://www.thymeleaf.org/ 

thymeleaf文档:https://www.thymeleaf.org/documentation.html

 

 使用maven加载核心库:

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

 

一、什么是thymeleaf

Thymeleaf是一个表现层的模板引擎,一般被使用在web环境中,它可以处理HTML、XML、JS等文档

简单的来说它,可以将JSP作为javaweb应用的表现层,有能力展示与处理数据,可以让界面设计人员、业务人员与技术人员都参与到开发中

这样,同一个模板文件,既可以使用浏览器直接打开,也可以放到服务器中来使用,并且样式之间基本不会存在差异,因此界面设计人员可以使用同一个模板文件,来查看静态与动态数据效果

 

(1)下面举例Thymeleaf的使用

创建meven项目,并添加依赖

    <dependencies>
        <!--测试类依赖-->
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.11</version>
            <scope>test</scope>
        </dependency>
        
        <!--thymeleaf依赖-->
        <dependency>
            <groupId>org.thymeleaf</groupId>
            <artifactId>thymeleaf</artifactId>
            <version>3.0.4.RELEASE</version>
        </dependency>
    </dependencies>

 

1、静态数据,直接输出

public class HelloThymeleaf {
    public static void main(String[] args) {
        //创建模板引擎
        TemplateEngine engine = new TemplateEngine();
        //准备模板
        String input = "<input type='text' th:value='thymeleaf'/>";//结果数据<input type='text' value='thymeleaf'/> 其中:th:value代表value属性的内容
        //准备数据,使用context
        Context context = new Context();//注意:这个context是在org.thymeleaf.context.Context中的
        //调用引擎,处理模板数据
        String out = engine.process(input, context);
        System.out.println("结果数据"+out);
    }
}

2、动态变化数据${}

    @Test
    public void test01(){
        //创建按模板引擎
        TemplateEngine templateEngine = new TemplateEngine();
        //准备模板
        String inStr = "<input type='text' th:value='${name}'/>";//这里的name相当于一个占位符
        //准备数据
        Context context = new Context();
        context.setVariable("name","张三");
        //处理模板数据
        String html = templateEngine.process(inStr, context);
        System.out.println("模板和数据的组合结果:"+html);//模板和数据的组合结果:<input type='text' value='张三'/>
    }

3、使用模板文件

maven的项目中,在resource目录中创建一个模板文件main.html文件

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

设置模板文件main.html中name的值

    @Test
    public void test02(){
        TemplateEngine templateEngine = new TemplateEngine();
        //读取磁盘中的模板文件
        ClassLoaderTemplateResolver resolver = new ClassLoaderTemplateResolver();//用于寻找模板、设置模板信息
        //设置引擎使用 resolver
        templateEngine.setTemplateResolver(resolver);
        //指定数据
        Context context = new Context();
        context.setVariable("name","张三");
        //处理模板
        String html = templateEngine.process("main.html", context);
        System.out.println("模板和数据的整合结果"+html);

    }

 4、设置模板文件的前缀、后缀

在resource下创建template目录,创建index.html文件,内容如下:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
    用户名:<input type="text" th:value="${name}">
</body>
</html>

 

测试如下:

    @Test
    public void test03(){
        TemplateEngine engine = new TemplateEngine();
        ClassLoaderTemplateResolver resolver = new ClassLoaderTemplateResolver();
        resolver.setPrefix("template/");//设置前缀,前缀是相对于resource目录而言的
        resolver.setSuffix(".html");//设置后缀

        //设置引擎
        engine.setTemplateResolver(resolver);

        Context context = new Context();
        context.setVariable("name","张三");

        String index = engine.process("index", context);//因为前面的前缀和后缀都指定了,所以这里只需要输入文件名即可

        System.out.println("index="+index);
    }

 

posted @ 2022-06-07 12:58  卓汶  阅读(172)  评论(0编辑  收藏  举报