文章目录
第3章 Thymeleaf模板渲染
3.2 Thymeleaf编程起步
Thymeleaf需要按照传统MVC设计模式的方式来进行处理,所以在定义控制器的时候必须使用@Controller注解来完成。通过控制器的Model类对象,可以传递相应属性到页面中显示。
1.【mldnboot-thymeleaf项目】建立ThymeleafController程序类,该类将跳转到Thyemelaf模板页面。
2.【mldnboot-thymeleaf项目】ThymeleafController控制器会跳转到message目录下的message_show.html页面进行显示,而该页面一定要在CLASSPATH路径下配置。为了结构清晰,本程序将建立一个src/main/view的源文件,并且必须建立templates目录,随后在这个目录下创建所需要的子目录(本程序需要创建message子目录)。项目最终的目录结构如图3-1所示
图3-1 Thymeleaf模板目录结构
提示:修改Thymeleaf的默认配置。
SpringBoot项目中Thymeleaf的动态页面需要保存在templates目录中,页面的扩展名默认使用的是*.html,如果开发者觉得这样的设计不合理,也可以通过application.yml配置文件自行修改。
范例: 修改Thyemeleaf的配置项。
虽然SpringBoot中可以修改Thymeleaf的默认配置项,但是在实际开发中不建议修改,还是遵从默认配置比较合理。
3.【mldnboot-thymeleaf项目】编写message_show.html页面,实现控制层传递属性输出。
3.4 读取资源文件
SpringBoot项目中的资源文件会统一在application.yml配置文件中定义。当页面需要使用的时候,可以像输出属性一样完成,唯一的区别是需要通过“#{key}”的形式来获取资源内容。
1.【mldnboot-thymeleaf项目】在application.yml配置文件中定义资源文件配置。
2.【mldnboot-thymeleaf项目】在Messages.properties配置文件里面定义资源内容。
3.【mldnboot-thymeleaf项目】要读取资源文件,需要动态页面的支持。在Thyemeleaf Controller控制器中建立一个新的方法,用于跳转到前端页面。
4.【mldnboot-thymeleaf项目】在src/main/view/templates/message目录中创建message_value.html页面,用于读取资源文件内容并进行显示。
在Thyemeleaf模板页面中直接使用资源的key获取资源信息,页面运行效果如图3-6所示。
图3-6 Thyemeleaf模板页面读取资源文件
3.5 路径处理
Web开发过程中,路径的处理操作是最为麻烦的。如果要进行准确的路径定位,最好使用完整的路径,并明确写上用户的协议、主机名称、端口以及虚拟目录的名称。这些处理的难点在于Thymeleaf彻底消失了,因为其路径访问变得相当容易,只需要在动态页面中使用“@{路径}”即可访问。
提示:回顾原始实现。
在进行Web项目开发的过程中,相信不少开发者都编写过如下的类似代码:
而后再使用元素()进行引用,可以解决路径操作问题。
1.【mldnboot-thymeleaf项目】在ThymeleafController中创建一个新的方法,用于跳转。
2.【mldnboot-thymeleaf项目】建立src/main/view/templates/message/message_path.html页面。
在message_path.html页面中继续引用之前定义了的资源,而采用“@{路径}”的形式使得资源引用也十分简单,页面运行效果如图3-7所示。
图3-7 Web资源引入
3.6 内置对象操作支持
在模板页面中,最为常用的功能就是输出控制器传递的属性。为了方便用户开发,Thymeleaf支持内置对象的直接使用,也可以直接调用内置