《精通Spring MVC 4》——2.4 使用Thymeleaf

2.4 使用Thymeleaf

Thymeleaf是一个模板引擎,在Spring社区中,它备受关注。

它的成功在很大程度上要归因于对用户友好的语法(它几乎就是HTML)以及扩展的便利性。

如表2-1所示,现在有各种可用的扩展,并且能够与Spring Boot进行集成。

闲言少叙,现在我们将spring-boot-starter-thymeleaf依赖添加进来,这样就能启动Thymeleaf模板引擎了:

buildscript {
    ext {
        springBootVersion = '1.2.5.RELEASE'
    }
    repositories {
        mavenCentral()
    }
    dependencies {
        classpath("org.springframework.boot:spring-boot-gradle-
plugin:${springBootVersion}")
        classpath("io.spring.gradle:dependency-management-
plugin:0.5.1.RELEASE")
    }
}
apply plugin: 'java'
apply plugin: 'eclipse'
apply plugin: 'idea'
apply plugin: 'spring-boot'
apply plugin: 'io.spring.dependency-management'

jar {
    baseName = 'masterSpringMvc'
    version = '0.0.1-SNAPSHOT'
}
sourceCompatibility = 1.8
targetCompatibility = 1.8

repositories {
    mavenCentral()
}

dependencies {
    compile 'org.springframework.boot:spring-boot-starter-web'
    compile 'org.springframework.boot:spring-boot-starter-thymeleaf'
    testCompile 'org.springframework.boot:spring-boot-starter-test'
}

eclipse {
    classpath {
         containers.remove('org.eclipse.jdt.launching.JRE_CONTAINER')
         containers 'org.eclipse.jdt.launching.JRE_CONTAINER/org.
eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8'
    }
}

task wrapper(type: Wrapper) {
    gradleVersion = '2.3'
}

第一个页面
现在,我们将第一个页面添加到应用之中,我们将其放到src/main/resources/templates中,并将其命名为resultPage.html:

<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org">
<head lang="en">
    <meta charset="UTF-8"/>
    <title>Hello thymeleaf</title>
</head>
<body>
    <span th:text="|Hello thymeleaf|">Hello html</span>
</body>
</html>

我们首先能够看到Thymeleaf与HTML结合得非常好,它的语法看上去也非常自然。

th:text的值放在两个竖线中间,这意味着文本中所有的值都会连接在一起。

看上去,这可能有点怪异,但实际上,我们很少在页面中进行硬编码,因此,Thymeleaf在这里采用了具有一定倾向性的设计。

对于Web设计人员来说,Thymeleaf有一项很大的优势,那就是在服务器没有运行的时候,模板中所有的动态内容都可以采用一个默认值。资源URL可以采用相对的路径来指定,每个标签都可以包含占位符。在前面的样例里面,如果是在应用的上下文中,那么文本“Hello html”将不会显示,但是如果直接在Web浏览器中打开这个文件的话,那么它就会显示了。

为了加快开发速度,在application.properties文件中添加该属性:

spring.thymeleaf.cache=false
这将会禁止启用视图缓存,每次访问的时候都会重新加载模板。

当然,在部署到生产环境时,该项配置需要禁用。在第8章时,我们会再进行设置。

如果禁用了缓存,在修改视图之后,只需在Eclipse中进行保存或者在IntelliJ中使用Build > Make Project操作就可以刷新视图。
最后,需要修改HelloController类,它必须要导航至我们新建的视图,而不是展现简单的文本。为了完成该功能,需要移除@ResponseBody注解。这样做完之后,如果再次返回字符串的话,就会告诉Spring MVC要将这个字符串映射为视图名,而不是在响应中直接展现特定的模型。

我们的控制器将会变为如下所示:

@Controller
public class HelloController {

    @RequestMapping("/")
    public String hello() {
        return "resultPage";
    }
}

在本例中,控制器会将用户转移到名为resultPage的视图中,ViewResolver接口会将这个名字与我们的视图进行关联。

再次启动应用并转至http://localhost:8080

你将会看到如图2-2所示的页面。

图2-2

时间: 2024-09-19 09:52:58

《精通Spring MVC 4》——2.4 使用Thymeleaf的相关文章

《精通Spring MVC 4》——第1章 快速搭建Spring Web应用 1.1Spring Tool Suite简介

第1章 快速搭建Spring Web应用 在本章中,我们将会直接接触代码并搭建一个Web应用,本书的其他章节将会基于该应用进行讲解. 在这里,我们将会使用Spring Boot的自动配置功能来构建应用,这样的话,就能完全避免使用样板式的配置文件. 本书中将会使用Gradle和Java 8,但是也不必为此感到担心.如果你还在使用Maven和更早版本的Java的话,相信你会发现这些技术也是很易于使用的. 很多官方的Spring教程同时提供了Gradle构建和Maven构建,因此,如果你决定继续使用M

《精通Spring MVC 4》——2.9 使用WebJars实现质感设计

2.9 使用WebJars实现质感设计 现在,我们的应用已经很棒了,但是在美学方面却差得很多.你可能听说过质感设计(material design),这是Google的扁平化设计. 如图2-10所示,我们将会使用Materialize,这是一个非常漂亮的CSS和JavaScript库,与Bootstrap类似. 图2-10 在第1章中,我们曾经简单介绍过WebJars,现在要开始使用它们了.在依赖中,我们要添加jQuery和Materialize CSS: compile 'org.webjar

《精通Spring MVC 4》——1.6 幕后的Spring Boot

1.6 幕后的Spring Boot 如果你之前搭建过Spring MVC应用,那么可能已经习惯于编写相关的XML文件或Java注解配置类. 一般来讲,初始的步骤如下所示: 1.初始化Spring MVC的DispatcherServlet: 2.搭建转码过滤器,保证客户端请求进行正确地转码: 3.搭建视图解析器(view resolver),告诉Spring去哪里查找视图,以及它们是使用哪种方言编写的(JSP.Thymeleaf模板等): 4.配置静态资源的位置(CSS.JS): 5.配置所支

《精通Spring MVC 4》——2.3 Spring MVC 1-0-1

2.3 Spring MVC 1-0-1 在Spring MVC中,模型是由Spring MVC的Model或ModelAndView封装的简单Map.它可以来源于数据库.文件.外部服务等,这取决于你如何获取数据并将其放到模型中.与数据层进行交互的推荐方式是使用Spring Data库:Spring Data JPA.Spring Data MongoDB等. Spring MVC的控制层是通过使用@Controller注解来进行处理的.在Web应用中,控制器的角色是响应HTTP请求.带有@Co

《精通Spring MVC 4》——2.5 Spring MVC架构

2.5 Spring MVC架构 让我们从这个新的"Hello World"页面后退一步,尝试去理解在这个Web应用中到底发生了什么.为了做到这一点,需要跟踪浏览器所发送的HTTP请求的行程以及它是如何从服务器端得到响应的. 2.5.1 DispatcherServlet 每个Spring Web应用的入口都是DispatcherServlet.图2-3展现了DispatcherServlet的架构. 图2-3 这个一个典型的HttpServlet类,它会将HTTP请求分发给Handl

《精通Spring MVC 4》——1.5 那就正式开始吧

1.5 那就正式开始吧 现在Web应用已经准备就绪,先看一下它是如何编写的.在进一步学习之前,我们可以将工作的成果保存到Git上. 在Windows下,需要安装Git bash,这可以在https://msysgit.github.io找到.在Mac下,如果你使用homebrew的话,很可能已经安装过Git了,否则的话,使用brew install git命令来进行安装. 如果要使用Git版本化我们的工作内容,那么可以在控制台中输入如下的命令: $ cd app $ git init 使用Int

《精通Spring MVC 4》——2.11 小结

2.11 小结 在本章中,我们学习了如何实现良好的MVC架构,看到了Spring MVC内部的一些运行机制,并通过非常少量的配置使用了Spring Social Twitter的功能.通过使用WebJars,可以设计非常漂亮的Web应用. 在下一章中,我们会要求用户填写其基本信息(profile),这样就能自动获取他们可能感兴趣的Tweet.这也给了我们一个机会来更深入地学习表单.格式化.校验以及国际化的功能.

《精通Spring MVC 4》——1.9 小结

1.9 小结 我们现在已经有了一个非常简陋的Spring Web应用,虽然我们没有对其进行什么配置,但是它可以输出RESTful JSON的"Hello world".我们已经看到过Spring Boot做了什么.是如何实现的,也了解到如何重写默认的自动配置. 单是详细介绍Spring Boot如何运行就够写一本书了.如果你想更深入探究的话,我推荐一本很棒的书,这就是由Greg Turnquist编写的<Learning Spring Boot>,它和本书是同一个系列的.

《精通Spring MVC 4》——2.7 结束Hello World,开始获取Tweet

2.7 结束Hello World,开始获取Tweet 好了,毕竟这本书的名字不是"精通Hello World",我们结束这一话题.借助Spring,使用Twitter的API进行查询是非常容易的事情.2.7.1 注册应用在开始之前,我们需要在Twitter的开发者控制台中注册应用. 访问https://apps.twitter.com,并创建一个新的应用. 根据你喜好为其设定一个名称,在Website和Callback URL区域中,输入http://127.0.0.1:8080(见