Thymeleaf 是流行的模板引擎,在 Spring MVC 可以用来代替默认的 jsp 视图。 本实验手册带学员如何在 Sprng MVC 中集成 Thymeleaf,并通过简单的用例介绍 Thymeleaf 的使用。
实验环境
本手册使用
JDK: 1.8
IDE: IDEA Community
Spring MVC: 4.3.8.RELEASE
Thymeleaf: 3.0.11.RELEASE
新建 Maven 项目
打开 IDEA Community, 选择新建项目,然后选择 maven 项目, 在右边的列表中选择 “org.apache.maven.archetypes:maven-archetype-webapp”。然后点击 “Next”。
在接下来的对话框中,填入项目名和项目保存的目录。(在这里,我使用 “springmvc-thymeleaf-getstart” 作为项目名) 然后 “Next”.
在接下来的对话框中,简单的选择 “Finish”。
项目生成后,我们打开 IDEA 中的 “Project” 视图,可以看到如下的项目结构(在这里,只列出关键的目录和文件):
1 | springmvc-thymeleaf-getstart |
可以看到,该模板生成的文件夹少了 java 文件夹,我们手动添加进去。
先用鼠标选择 src/main 目录,点击右键,选择建立目录(Directory), 在弹出框的输入框中输入: java 作为目录名,在弹出框的下半部分的选择框中选择 java 类型。
完成后的目录结构如下:
1 | springmvc-thymeleaf-getstart |
加入依赖库
因为是 maven 项目,所有依赖的声明都包含在 pom.xml 文件中,打开 pom.xml 文件,加入如下内容:
1 | <properties> |
另外,我们还需要在 pom.xml 文件中加入一些编译、构建选项。 如下:
1 | <build> |
其中,tomcat7-maven-plugin 是为了在开发阶段能使用 tomcat7 来运行项目。
最后,为了加快依赖库的下载,指名项目使用国内的 maven 仓库:
1 | <repositories> |
修改完成后,保存 pom.xml,如果 IDEA Community 没有开始下载依赖,则需要手动选择: 鼠标右键选择项目(springmvc-thymeleaf-getstart) ,然后在弹出菜单中选择 maven -> reload project。
配置 web.xml 文件
作为 Java Web Application, web.xml 是项目的核心配置文件,我们需要在这里加入Spring MVC 的入口点:
打开 web.xml 文件,加入以下内容:
1 |
|
配置 Spring MVC
在上面的 web.xml 文件中,我们指名了 Spring MVC 的配置文件是: spring-mvc.xml, 现在,我们就来建立该文件。
在 src/main/resources 目录中新建名为: spring-mvc.xml, 内容如下:
1 |
|
配置 Spring
在 web.xml 中,我们指名 Spring 的配置文件为 spring-app.xml, 现在就来建立该文件。
在 src/main/resources 目录中新建名为: spring-app.xml, 内容如下:
1 |
|
建立 Controller
在 src/main/java 中建立名为: cn.com.hohistar.training.petstore.web 的java包。
右键选择 src/main/java, 在菜单中选择 package, 然后在弹出框中输入: cn.com.hohistar.training.petstore.web
再右键选择新建好的 cn.com.hohistar.training.petstore.web 包,在菜单中选择 Class, 输入名: IndexController。
打开新建的 IndexController.java 文件,填入如下内容:
1 |
|
建立首页
因为在 spring-mvc.xml 中,我们配置 Thymeleaf 视图的位置为:views, 所以需要首先在 WEB-INF 中建立一个名为 views 的目录。后续建立的所有视图文件都放在该目录下, 建立以后的项目结构如下:
1 | + src |
然后在 views 中新建一个名为: index.html 的文件,内容如下:
1 |
|
删除原来 WEB-INF 目录下的 index.jsp 文件。
运行程序
在 IDEA Community 中选择 Maven 视图,然后找到: “Plugins” -> “Tomcat7” -> “tomcat7:run-war”, 双击该选择以运行程序。
如果启动争取,可以在输出中看到类似如下的内容:
1 | 信息: Starting ProtocolHandler ["http-bio-8080"] |
表明程序已经运行在本机的 8080 端口了。
现在,打开一个浏览器,访问:
1 | http://localhost:8080 |
就可以看到页面上输出 “Hello Thymeleaf !” 。
下一步
在 下一步 中,我们将学习一些 Thymeleaf 的基本使用。