全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

详解spring Boot 集成 Thymeleaf模板引擎实例

今天学习了spring boot 集成Thymeleaf模板引擎。发现Thymeleaf功能确实很强大。记录于此,供自己以后使用。

Thymeleaf:

  1. Thymeleaf是一个java类库,他是一个xml/xhtml/html5的模板引擎,可以作为mvc的web应用的view层。
  2. Thymeleaf还提供了额外的模块与Spring MVC集成,所以我们可以使用Thymeleaf完全替代jsp。

spring Boot

  1. 通过org.springframework.boot.autoconfigure.thymeleaf包对Thymeleaf进行了自动配置。
  2. 通过ThymeleafAutoConfiguration类对集成所需要的bean进行自动配置。包括templateResolver,templateEngine,thymeleafViewResolver的配置。

下面我将演示spring boot 日常工作中常用的Thymeleaf用法。

Spring Boot 日常工作中常用Thymeleaf的用法

1:首先,在创建项目的时候选择依赖中选中Thymeleaf,或者在pom中添加依赖

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

或者项目名-右键-add Framework Support来添加依赖jar包。如图

 

  

2:示例javaBean

此类用来在模板页面展示数据用。包含name和age属性。

public class Person {
  private String name;
  private Integer age;

  public Person(String name, Integer age) {
    this.name = name;
    this.age = age;
  }

  public String getName() {
    return name;
  }

  public void setName(String name) {
    this.name = name;
  }

  public Integer getAge() {
    return age;
  }

  public void setAge(Integer age) {
    this.age = age;
  }
}

3.脚本样式静态文件

根据默认原则,脚本样式,图片等静态文件应放置在src/main/resources/static下,这里引入了Bootstrap和jQuery,结构如图所示:

 

4.演示页面

根据默认原则,页面应放置在src/main/resources/templates下。在src/main/resources/templates下面新建index.html,如上图。
代码如下:

<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org"
   xmlns:sec="http://www.thymeleaf.org/thymeleaf-extras-springsecurity3">
<head>
  <meta name="viewport" content="width=device-width,initial-scale=1"/>
  <link th:href="@{bootstrap/css/bootstrap.min.css}" rel="external nofollow" rel="stylesheet"/>
  <link th:href="@{bootstrap/css/bootstrap-theme.min.css}" rel="external nofollow" rel="stylesheet"/>
  <meta charset="UTF-8"/>
  <title>Title</title>
</head>
<body>
  <div class="panel panel-primary">
    <div class="panel-heading">
      <h3 class="panel-title">访问model</h3>
    </div>
    <div class="panel-body">
      <span th:text="${singlePerson.name}"></span>
    </div>
    <div th:if="${not #lists.isEmpty(people)}">
      <div class="panel panel-primary">
        <h3 class="panel-title">列表</h3>
      </div>
      <div class="panel-body">
        <ul class="panel-group">
          <li class="list-group-item" th:each="person:${people}">
            <span th:text="${person.name}"></span>
            <span th:text="${person.age}"></span>
            <button class="btn" th:onclick="'getName(\''+${person.name}+'\')'">获得名字</button>
          </li>
        </ul>
      </div>

    </div>
  </div>
<script th:src="@{jquery-1.10.2.min.js}" type="text/javascript"></script>
<script th:src="@{bootstrap/js/bootstrap.min.js}"></script>
<script th:inline="javascript">
  var single=[[${singlePerson}]];
  console.log(single.name+"/"+single.age);
  function getName(name) {

      console.log(name);

  }
</script>
</body>
</html>

5.数据准备

代码如下:

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import java.util.ArrayList;
import java.util.List;
@Controller
@SpringBootApplication
public class ThymeleafTestApplication {
  @RequestMapping("/")
  public String index(Model model){
    Person single=new Person("aa",1);
    List<Person> people=new ArrayList<Person>();
    Person p1=new Person("bb",2);
    Person p2=new Person("cc",3);
    Person p3=new Person("dd",4);
    people.add(p1);
    people.add(p2);
    people.add(p3);
    model.addAttribute("singlePerson",single);
    model.addAttribute("people",people);
    return "index";
  }
  public static void main(String[] args) {
    SpringApplication.run(ThymeleafTestApplication.class, args);
  }


}

6.运行

访问http://localhost:8080效果如图:

 

单击“获得名字” f12产看页面控制台打印的日志效果如图:

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。


# spring  # boot  # 模板引擎  # Thymeleaf  # springboot集成mybatisplus实例详解  # springboot Mongodb的集成与使用实例详解  # springboot集成KoTime的配置过程  # 如图  # 是一个  # 右键  # 我们可以  # 此类  # 我将  # 于此  # 所需要  # 他是一个  # 单击  # 大家多多  # 进行了  # 如图所示  # 很强大  # 类库  # 如上图  # 引入了  # Person  # private  # jar 


相关文章: 哈尔滨网站建设策划,哈尔滨电工证查询网站?  天津个人网站制作公司,天津网约车驾驶员从业资格证官网?  专业企业网站设计制作公司,如何理解商贸企业的统一配送和分销网络建设?  如何快速搭建高效WAP手机网站?  小米网站链接制作教程,请问miui新增网页链接调用服务有什么用啊?  h5在线制作网站电脑版下载,h5网页制作软件?  网站制作的方法有哪些,如何将自己制作的网站发布到网上?  制作门户网站的参考文献在哪,小说网站怎么建立?  详解ASP.NET 生成二维码实例(采用ThoughtWorks.QRCode和QrCode.Net两种方式)  唐山网站制作公司有哪些,唐山找工作哪个网站最靠谱?  教学网站制作软件,学习*后期制作的网站有哪些?  建站之星如何防范黑客攻击与数据泄露?  制作网站外包平台,自动化接单网站有哪些?  如何在IIS中新建站点并解决端口绑定冲突?  如何访问已购建站主机并解决登录问题?  如何在腾讯云服务器快速搭建个人网站?  网站建设设计制作营销公司南阳,如何策划设计和建设网站?  广州网站制作公司哪家好一点,广州欧莱雅百库网络科技有限公司官网?  学校免费自助建站系统:智能生成+拖拽设计+多端适配  建站之星后台密码遗忘如何找回?  如何用手机制作网站和网页,手机移动端的网站能制作成中英双语的吗?  如何用花生壳三步快速搭建专属网站?  如何实现建站之星域名转发设置?  孙琪峥织梦建站教程如何优化数据库安全?  创业网站制作流程,创业网站可靠吗?  如何在企业微信快速生成手机电脑官网?  如何挑选最适合建站的高性能VPS主机?  网站制作专业公司有哪些,如何制作一个企业网站,建设网站的基本步骤有哪些?  C#如何在一个XML文件中查找并替换文本内容  怎么制作网站设计模板图片,有电商商品详情页面的免费模板素材网站推荐吗?  如何在Golang中使用encoding/gob序列化对象_存储和传输数据  ,如何利用word制作宣传手册?  如何快速登录WAP自助建站平台?  ,南京靠谱的征婚网站?  公司门户网站制作流程,华为官网怎么做?  如何零基础在云服务器搭建WordPress站点?  javascript中的try catch异常捕获机制用法分析  免费的流程图制作网站有哪些,2025年教师初级职称申报网上流程?  完全自定义免费建站平台:主题模板在线生成一站式服务  如何在景安服务器上快速搭建个人网站?  高性能网站服务器配置指南:安全稳定与高效建站核心方案  企业宣传片制作网站有哪些,传媒公司怎么找企业宣传片项目?  c# 服务器GC和工作站GC的区别和设置  怎么制作一个起泡网,水泡粪全漏粪育肥舍冬季氨气超过25ppm,可以有哪些措施降低舍内氨气水平?  自助网站制作软件,个人如何自助建网站?  已有域名和空间如何搭建网站?  儿童网站界面设计图片,中国少年儿童教育网站-怎么去注册?  佛山企业网站制作公司有哪些,沟通100网上服务官网?  如何快速搭建个人网站并优化SEO?  小型网站建站如何选择虚拟主机? 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。