- 名师讲坛:Java微服务架构实战(SpringBoot+SpringCloud+Docker+RabbitMQ)
- 李兴华
- 455字
- 2021-03-26 11:42:23
3.6 内置对象操作支持
在模板页面中,最为常用的功能就是输出控制器传递的属性。为了方便用户开发,Thymeleaf支持内置对象的直接使用,也可以直接调用内置对象所提供的处理方法。
在通过控制器传递属性到Thymeleaf操作的时候,默认支持的属性获取范围为request(${属性名称})。如果要接收其他属性范围的内容,则需要指明范围,如session范围(${session.属性名称})、application范围(${application.属性名称})。
1.【mldnboot-thymeleaf项目】修改ThymeleafController控制器程序类,追加属性传递。本程序将传递request、session和application 3种属性范围的信息。
![](https://epubservercos.yuewen.com/688FD1/16499866904818506/epubprivate/OEBPS/Images/Figure-P45_10914.jpg?sign=1739226361-D2Nymg93p9NgUostylh0ShvrgpKesLCd-0-abe845afd13f86bda401b2001bb3d10c)
2.【mldnboot-thymeleaf项目】定义src/main/view/templates/message/message_attr.html页面,进行属性内容输出。
![](https://epubservercos.yuewen.com/688FD1/16499866904818506/epubprivate/OEBPS/Images/Figure-P45_10916.jpg?sign=1739226361-qbKpldcq1dft8xCxiAVekMZIfnt0to6p-0-1f64840035099a3858f5a8e56aadb748)
本程序在Thymeleaf模板页面中输出了控制器中传递的不同范围的属性内容。可以发现,只有request范围的属性可以直接通过表达式语法输出,而session与application范围的属性输出时,必须要有相应的范围标记,否则获取的内容就是null。本程序的执行结果如图3-8所示。
![](https://epubservercos.yuewen.com/688FD1/16499866904818506/epubprivate/OEBPS/Images/Figure-P46_2273.jpg?sign=1739226361-bOGhPxRQbNmvnJ20AePGoAxHb0MdFkLu-0-713c7fdd5ed4aaeac0df2db0f828c705)
图3-8 Thymeleaf输出不同属性范围的信息
3.【mldnboot-thymeleaf项目】在Thymeleaf中也支持对内置对象的直接处理。修改message_attr.html页面,增加内置对象的方法调用。
![](https://epubservercos.yuewen.com/688FD1/16499866904818506/epubprivate/OEBPS/Images/Figure-P46_10918.jpg?sign=1739226361-7ih9xAqPsGBxbdYujEwZnQPM7kt7FV0i-0-c00038f26a71972d466606539f3aed30)
本程序利用内置对象提供的方法获取了IP地址、request属性、sessionId以及项目真实路径,程序运行结果如图3-9所示。
![](https://epubservercos.yuewen.com/688FD1/16499866904818506/epubprivate/OEBPS/Images/Figure-P46_2275.jpg?sign=1739226361-62F1nG0E3TzIAGXvJ2lPnZWoF6LNifc9-0-d0ec24fe86ea1a9a751c130e30a1c932)
图3-9 直接调用内置对象方法