Spring Boot支持很多模板引擎,但嵌入式容器JSP有限制,2010年后Velocity停止更新,所以这两个不建议使用。
(1)Thymeleaf
pom.xml
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>
src/main/java/com/rensanning/springboot/PageController.java
@Controller
public class PageController {
@RequestMapping("/testTH")
public String testTH(ModelMap map) {
map.addAttribute("msg", "Hello, rensanning! @Thymeleaf");
return "test_th";
}
}
src/main/resources/templates/test_th.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8"/>
<title>Thymeleaf Sample</title>
</head>
<body>
<h1 th:text="${msg}"></h1>
</body>
</html>
引用
2017-02-09 14:59:16.586 INFO 6596 --- [ main] s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped "{[/testTH]}" onto public java.lang.String
com.rensanning.springboot.PageController.testTH(org.springframework.ui.ModelMap)
访问 http://localhost:8080/testTH
Thymeleaf的默认设置
application.properties
引用
spring.thymeleaf.prefix=classpath:/templates/ # Prefix that gets prepended to view names when building a URL.
spring.thymeleaf.suffix=.html # Suffix that gets appended to view names when building a URL.
spring.thymeleaf.mode=HTML5 # Template mode to be applied to templates. See also StandardTemplateModeHandlers.
spring.thymeleaf.encoding=UTF-8 # Template encoding.
spring.thymeleaf.content-type=text/html # Content-Type value.
LEGACYHTML5
spring.thymeleaf.mode=LEGACYHTML5
模板将不会按xhtml输出,html错误将被忽略。比如<br>、<link rel="" href="">、<meta charset="UTF-8">等这些没有闭合的标签,以默认mode是无法访问的。不过需要依赖nekohtml:
<dependency>
<groupId>net.sourceforge.nekohtml</groupId>
<artifactId>nekohtml</artifactId>
<version>1.9.15</version>
</dependency>
Thymeleaf以标签的属性形式出现,以下是常用的属性:
引用
1)th:text 标签内显示数据 <p th:text="${text}">test</p>
2)th:href 链接的URL <link th:href="@{bootstrap/css/bootstrap.min.css}" rel="stylesheet" />
3)th:if、th:unless 简单判断 <p th:if="${errorMsg} != null">error</p>
4)th:each 循环输出 *注意不是<tbody>而是<tr>循环输出
<tbody th:each="list : ${beans}">
<tr>...</tr>
</tbody>
5)th:switch、th:case 分支判断
<td th:switch="${num}">
<p th:case="0">ZERO</p>
<p th:case="1">ONE</p>
<p th:case="*">NUM</p>
</td>
6)数据访问模式:链接(@{...})、变量(${...})、国际化文字(#{...})、选择表达式(*{...})
模板重用
src/main/resources/templates/base.html
<!DOCTYPE html>
<html xmlns ="http://www.w3.org/1999/xhtml"
xmlns:th ="http://www.thymeleaf.org"
xmlns:layout ="http://www.ultraq.net.nz/thymeleaf/layout">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>thymeleaf base</title>
</head>
<body>
<!-- header -->
<header>
<div align="center" >header</div>
<hr />
</header>
<!-- contents -->
<div layout:fragment="content">Contents is here!</div>
<!-- footer -->
<footer>
<hr />
<div align="center">footer</div>
</footer>
</body>
</html>
src/main/resources/templates/contents.html
<!DOCTYPE html>
<html xmlns ="http://www.w3.org/1999/xhtml"
xmlns:th ="http://www.thymeleaf.org"
xmlns:layout ="http://www.ultraq.net.nz/thymeleaf/layout"
layout:decorator="base">
<head>
<title>Contents</title>
</head>
<body>
<div layout:fragment="content">
<table class="table">
<thead class="sunflower">
<tr>
<td>ID</td>
<td>NAME</td>
</tr>
</thead>
<tbody th:each="list : ${beans}">
<tr>
<td class="text-str" th:text="${list.id}"></td>
<td class="text-str" th:text="${list.name}"></td>
</tr>
</tbody>
</table>
</div>
</body>
</html>
(2)FreeMarker
pom.xml
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-freemarker</artifactId>
</dependency>
src/main/java/com/rensanning/springboot/PageController.java
@Controller
public class PageController {
@RequestMapping("/testFM")
public String testFM(ModelMap map) {
map.addAttribute("msg", "Hello, rensanning! @FreeMarker");
return "test_fm";
}
}
src/main/resources/templates/test_fm.ftl
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8"/>
<title>FreeMarker Sample</title>
</head>
<body>
<h1>${msg}</h1>
</body>
</html>
引用
2017-02-09 14:59:16.585 INFO 6596 --- [ main] s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped "{[/testFM]}" onto public java.lang.String
com.rensanning.springboot.PageController.testFM(org.springframework.ui.ModelMap)
访问 http://localhost:8080/testFM
- 大小: 30.9 KB
- 大小: 29.3 KB
分享到:
相关推荐
总的来说,"spring-boot-study-base.zip"是一个很好的Spring Boot入门教程,它涵盖了从基础到实践的关键知识点。通过学习和实践,你可以快速掌握Spring Boot的精髓,从而在实际开发中提高效率,构建出更加健壮和灵活...
在"spring boot入门篇demo+ppt"中,我们可以期待学习以下核心知识点: 1. **Spring Boot基础知识**:了解Spring Boot的基本概念,包括其设计目标、主要特性以及与其他Spring框架的关系。 2. **起步依赖(Starter)...
通过阅读 "Spring boot(一): 入门篇.pdf" 和 "Spring boot(二):web综合开发.pdf",你可以深入了解 Spring Boot 的基本概念、快速上手指南以及如何进行 Web 应用的综合开发。这些资料将引导你从初识 Spring Boot 到...
以上是 Spring Boot 基础篇的知识点,包括 Spring Boot 简介、快速上手 Spring Boot、Spring Boot 入门案例、parent starter 引导类、内嵌 Tomcat 基础配置、配置属性配置、yaml 文件语法规则、yaml 数据读取、整合...
在本压缩包“SpringCloud入门基本代码(基础篇)”中,我们将会探索Spring Cloud的基础概念和实践。Spring Cloud是一个微服务开发工具集,它为开发者提供了在分布式系统(如配置管理、服务发现、断路器、智能路由、...
通过阅读官方文档,开发者可以了解Spring的完整生态系统,包括Spring Boot、Spring Data、Spring Security等周边项目,进一步提升开发效率。 总结来说,Spring Framework 4.2.1.RELEASE不仅是一个强大的Java应用...
总之,《尚硅谷Spring Boot课堂笔记》是一份全面而实用的学习材料,不仅适合初学者入门,也对有一定基础的开发者有很高的参考价值。通过深入学习和实践,开发者能够充分利用Spring Boot的优势,高效地开发和管理Java...
---Day01SpringBoot基础重温篇.mp4 ---Day02SpringBoot核心原理篇.mp4 ---Day03SpringBoot完美收官篇.mp4 优秀作业名单 ---Day01优秀作业名单(排名不分先后).txt ---Day02优秀作业名单(排名不分先后).txt 源码和软件...
《Spring Boot全方位解析:从入门到精通》 Spring Boot,作为Java生态系统中的明星框架,以其“开箱即用”的特性,极大地简化了Spring应用的初始搭建以及开发过程。本篇文章将深入探讨Spring Boot的核心概念、关键...
总的来说,这些视频教程构成了一个全面的Spring Boot入门学习路径,从基础的框架集成到实际业务场景的应用,旨在帮助开发者快速掌握Spring Boot开发的技能,并提升在后端Java项目中的实践能力。通过学习这些内容,...
**Spring MVC 快速入门分析** Spring MVC 是一个基于 Java 的模型-视图-控制器(MVC)架构,是 Spring 框架的一部分,用于构建Web应用程序。它提供了丰富的功能,帮助开发者处理HTTP请求、数据绑定、视图渲染等任务...
总之,"初学Spring项目(入门解读和新建项目)"这篇博文将引导你了解Spring框架的基本概念,学习如何使用Spring Initializr创建项目,并通过实际操作来熟悉Spring Boot的启动流程、MVC架构、数据库操作以及自动配置等...
2. **Spring Boot入门** - **自动配置**:Spring Boot的核心特性之一,根据项目依赖自动配置相关组件。 - **起步依赖**:通过引入特定的起步依赖(Starter POMs),可以快速引入所需功能模块,如spring-boot-...
本篇文章将通过"spring入门案例所需工具"的介绍,帮助初学者快速掌握Spring的基本概念和使用方法。 首先,让我们了解一下Spring的核心组件和主要功能。Spring框架主要包括以下几个部分: 1. **依赖注入...
一、基础篇 1. **Java 基础**:首先,熟悉 Java 语言是必要的,包括语法、面向对象编程概念、集合框架等。 2. **Spring 概念**:了解 Spring 框架的核心概念,如依赖注入(DI)、面向切面编程(AOP)以及 Spring MVC...
课程内容分为两个部分:基础篇和进阶篇,均基于Spring Boot框架的最新版本2.0.3 RELEASE。 **基础篇(第1至10课)** 着重介绍Spring Boot在项目开发中的核心功能,目的是帮助学习者迅速掌握必要的知识点,并将其...
02、尚硅谷_SpringBoot_入门-Spring Boot简介 03、尚硅谷_SpringBoot_入门-微服务简介 04、尚硅谷_SpringBoot_入门-环境准备 05、尚硅谷_SpringBoot_入门-springboot-helloworld 06、尚硅谷_SpringBoot_入门-...
1. **Spring Boot基础** Spring Boot简化了Spring框架的配置,通过默认配置和自动配置机制,使得开发过程更加高效。其核心特性包括内嵌式Web服务器(如Tomcat)、健康检查、Actuator监控、Spring Data JPA等。在本...
例如,引入`spring-boot-starter-web`后,SpringBoot会自动配置DispatcherServlet、Tomcat、Jackson等。 七、运行与测试 在命令行中,我们可以使用`mvn spring-boot:run`命令启动项目。然后,通过访问`...