全网整合营销服务商

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

免费咨询热线: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 


相关文章: 网站制作软件有哪些,制图软件有哪些?  网站制作专业公司有哪些,如何制作一个企业网站,建设网站的基本步骤有哪些?  常州企业建站如何选择最佳模板?  阿里云网站搭建费用解析:服务器价格与建站成本优化指南  如何在阿里云虚拟服务器快速搭建网站?  电视网站制作tvbox接口,云海电视怎样自定义添加电视源?  成都网站制作报价公司,成都工业用气开户费用?  深圳网站制作平台,深圳市做网站好的公司有哪些?  如何快速打造个性化非模板自助建站?  Python文件管理规范_工程实践说明【指导】  网站广告牌制作方法,街上的广告牌,横幅,用PS还是其他软件做的?  在线ppt制作网站有哪些软件,如何把网页的内容做成ppt?  建站主机选哪种环境更利于SEO优化?  c++怎么用jemalloc c++替换默认内存分配器【性能】  正规网站制作公司有哪些,目前国内哪家网页网站制作设计公司比较专业靠谱?口碑好?  制作网站软件推荐手机版,如何制作属于自己的手机网站app应用?  如何用景安虚拟主机手机版绑定域名建站?  建设网站制作价格,怎样建立自己的公司网站?  如何在橙子建站中快速调整背景颜色?  c++怎么编写动态链接库dll_c++ __declspec(dllexport)导出与调用【方法】  西安制作网站公司有哪些,西安货运司机用的最多的app或者网站是什么?  手机网站制作与建设方案,手机网站如何建设?  如何在搬瓦工VPS快速搭建网站?  ,交易猫的商品怎么发布到网站上去?  邀请函制作网站有哪些,有没有做年会邀请函的网站啊?在线制作,模板很多的那种?  高端智能建站公司优选:品牌定制与SEO优化一站式服务  定制建站流程解析:需求评估与SEO优化功能开发指南  网站制作难吗安全吗,做一个网站需要多久时间?  制作网站的软件免费下载,免费制作app哪个平台好?  惠州网站建设制作推广,惠州市华视达文化传媒有限公司怎么样?  如何通过网站建站时间优化SEO与用户体验?  网站制作壁纸教程视频,电脑壁纸网站?  如何在IIS7中新建站点?详细步骤解析  如何选择长沙网站建站模板?H5响应式与品牌定制哪个更优?  如何登录建站主机?访问步骤全解析  Swift中swift中的switch 语句  如何通过FTP服务器快速搭建网站?  南京做网站制作公司,南京哈发网络有限公司,公司怎么样,做网页美工DIV+CSS待遇怎么样?  电商网站制作多少钱一个,电子商务公司的网站制作费用计入什么科目?  如何确保西部建站助手FTP传输的安全性?  简历在线制作网站免费,免费下载个人简历的网站是哪些?  如何在Golang中引入测试模块_Golang测试包导入与使用实践  ,sp开头的版面叫什么?  长沙做网站要多少钱,长沙国安网络怎么样?  制作充值网站的软件,做人力招聘为什么要自己交端口钱?  焦点电影公司作品,电影焦点结局是什么?  相册网站制作软件,图片上的网址怎么复制?  如何通过虚拟主机快速完成网站搭建?  建站之星如何取消后台验证码生成?  高端企业智能建站程序:SEO优化与响应式模板定制开发 

您的项目需求

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