Spring Boot使用thymeleaf模板

Thymeleaf是个XML/XHTML/HTML5模板引擎,可以用于Web与非Web应用。Thymeleaf的主要目标在于提供一种可被浏览器正确显示的、格式良好的模板创建方式,因此也可以用作静态建模。可以完全替代JSP。

Thymeleaf 在有网络和无网络的环境下皆可运行,即它可以让美工在浏览器查看页面的静态效果,也可以让程序员在服务器查看带数据的动态页面效果。这是由于它支持 html 原型,然后在 html 标签里增加额外的属性来达到模板+数据的展示方式。浏览器解释 html 时会忽略未定义的标签属性,所以 thymeleaf 的模板可以静态地运行;当有数据返回到页面时,Thymeleaf 标签会动态地替换掉静态内容,使页面动态显示。

那么Spring Boot怎样和thymeleaf整合呢?

首先新建maven项目,导入spring boot的依赖

<parent>
	<groupId>org.springframework.boot</groupId>
	<artifactId>spring-boot-starter-parent</artifactId>
	<version>1.3.8.RELEASE</version>
</parent>

导入thymeleaf starter pom依赖

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

在src/main/resources下新建static目录(存放js、css、图片等静态资源)和templates目录(存放展示模板,如html等),将bootstrap相关的js、css放入到static下

新建Person类,作为数据载体

package com.spring.boot.web.model;

public class Person {

	private String name;

	private int age;

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

	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public int getAge() {
		return age;
	}
	public void setAge(int age) {
		this.age = age;
	}
}

新建WebController类,指定入口方法,向模板填充数据

package com.spring.boot.web.controller;

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

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

import com.spring.boot.web.model.Person;

@Controller
public class WebController {

	@RequestMapping("/")
	public String index(Model model){
		Person onePerson = new Person("微儿博客", 18);

		List<Person> list = new ArrayList<Person>();
		Person p1 = new Person("张三", 18);
		Person p2 = new Person("李四", 19);
		Person p3 = new Person("王五", 20);
		list.add(p1);
		list.add(p2);
		list.add(p3);

		model.addAttribute("oneperson", onePerson);//向模板传数据
		model.addAttribute("people", list);
		return "index";//找到名为index.*的模板
	}
}

在src/main/resources/templates下新建index.html

<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org">
<head>
<meta charset="UTF-8"/>
<title>test</title>
<link th:href="@{css/bootstrap.min.css}" rel="stylesheet"/>
</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="${oneperson.name}"></span>
		</div>
	</div>
	<div th:if="${not #lists.isEmpty(people)}">
		<div class="panel panel-primary">
			<div class="panel-heading">
				<h3 class="panel-title">列表</h3>
			</div>
			<div class="panel-body">
				<ul class="list-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 type="text/javascript" th:src="@{js/jquery-1.12.3.min.js}"></script>
	<script type="text/javascript" th:src="@{js/bootstrap.min.js}"></script>
	<script th:inline="javascript">
		function getName(name){
			alert(name);
		}
	</script>
</body>
</html>

创建执行类Main

package com.spring.boot.web;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
public class Main {

	public static void main(String[] args) {
		SpringApplication.run(Main.class, args);
	}
}

执行,访问localhost:8080

原文链接:http://www.weare.net.cn/article/6e8a585099d2169180abeb04efe8b59f.html

时间: 2024-10-12 04:42:10

Spring Boot使用thymeleaf模板的相关文章

Spring Boot入门——thymeleaf模板使用

使用步骤 1.在pom.xml中引入thymeleaf <!-- thymeleaf插件 --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-thymeleaf</artifactId> <version>1.5.3.RELEASE</version> </dependen

Spring Boot? 使用Thymeleaf模板引擎渲染web视图

静态资源访问 在我们开发Web应用的时候,需要引用大量的js.css.图片等静态资源. 默认配置 Spring Boot默认提供静态资源目录位置需置于classpath下,目录名需符合如下规则: /static /public /resources /META-INF/resources 举例:我们可以在src/main/resources/目录下创建static,在该位置放置一个图片文件.启动程序后,尝试访问http://localhost:8080/D.jpg.如能显示图片,配置成功. 渲染

Spring Boot使用thymeleaf模板时报异常:template might not exist or might not be accessible by any of the configured Template Resolvers

错误如下: template might not exist or might not be accessible by any of the configured Template Resolvers 解决方法: 1.确定模板是否在默认templates文件夹里面,并且路径要和返回的View名字一致. 2.new ModelAndView("/log/loglist");这样写是不对的,应该把开头的斜杠去掉,改成:new ModelAndView("log/loglist&

关于spring boot整合thymeleaf模板引擎

1.目录结构: 2.前端页面引用: 这里想说的是引用的默认出发点是在/static/下了  3.后端:  使用了mybatis分页插件 @RequestMapping("list") public String getList(Model model,HttpSession session, @RequestParam(value = "pageNum",defaultValue = "1") int pageNum, @RequestParam

Spring boot 通用配置文件模板

001 # ===================================================================002 # COMMON SPRING BOOT PROPERTIES003 #004 # This sample file is provided as a guideline. Do NOT copy it in its005 # entirety to your own application.               ^^^006 # ==

Spring Boot + MyBatis + Thymeleaf实现简单留言板应用

Spring Boot + MyBatis + Thymeleaf实现简单留言板应用 本项目主要介绍使用Spring Boot + MyBatis + Thymeleaf + Bootstrap来实现一个简单的增删改查(CRUD)留言板应用.高阶人士可以直接跳过. 源代码:https://github.com/qingwenwei/spring-boot-crud-example 功能介绍 发表帖子.帖子列表 编辑帖子 使用Spring Initializr构建项目 Spring Initial

Spring Boot系列(3)——模板引擎thymeleaf

〇.thymeleaf是什么 1.在以往开发spring web项目时,若我们想在前端页面上显示一些服务端的数据(即动态显示),得借助JSP的内置对象和JSTL实现,或者通过JavaScript请求实现:其缺点在于,与后端联系太紧密,不利于前后端分离. 2.而使用模板引擎,可以大大克服这一缺点,模板引擎可以使得前端很自然地开发(即更接近原生html). 3.模板引擎优点有:业务逻辑代码与界面代码分离.动态数据与静态数据分离.代码重用.... 4.常用模板引擎:Thymeleaf.FreeMark

Spring Boot:Thymeleaf篇

Spring Boot干货系列:(四)Thymeleaf篇http://www.cnblogs.com/zheting/p/6707037.html 前言 Web开发是我们平时开发中至关重要的,这里就来介绍一下Spring Boot对Web开发的支持. 正文 Spring Boot提供了spring-boot-starter-web为Web开发予以支持,spring-boot-starter-web为我们提供了嵌入的Tomcat以及Spring MVC的依赖. 项目结构推荐 一个好的项目结构会让

spring boot 与 thymeleaf (1): 国际化

在thymeleaf 里面有个消息表达式: #{...} , 可以借此来实现国际化. 在我使用这个功能的时候, 碰到了一个问题, 按照 JavaEE开发的颠覆者 Spring Boot实战  上面编码的时候, 出现了以下问题, 相信很多人都碰到过. ??home.welcome_zh_CN?? 这里推荐一篇博客, 里面有解决办法. 玩转spring boot--国际化 我也想将我自己代码记录下来. 一. 目录预览 这里我并没有按照资料上所述的, 将properties文件建在 index.htm