小工具知识网

当前位置: 首页 > 行业知识 > 40、springboot 整合 Thymeleaf(Thymeleaf 的自动配置和基本语法及整合)

行业知识

40、springboot 整合 Thymeleaf(Thymeleaf 的自动配置和基本语法及整合)

2026-11-10 06:42:43 来源:互联网转载

目录

  • springboot 整合 Thymeleaf(Thymeleaf 的自动配置和基本语法及整合)
    • Spring Boot 支持如下模板技术:
    • Thymeleaf 的优势
    • Thymeleaf 整合Spring MVC(包括Spring WebFlux)之后的改变
    • Thymeleaf自动配置主要由如下两个类提供支持
      • 自动配置由如下两个类提供:
      • 基本语法
        • Thymeleaf引入 th 前缀
        • Thymeleaf 引入URL
          • Thymeleaf 表达式
          • Thymeleaf 字符串操作
            • 1、用加号(+)来拼接字符串。
            • 2、还有一种更简洁的方式
            • Thymeleaf 的运算符
              • 算术运算符
              • 逻辑运算符
              • 三元表达式:
              • Thymeleaf 的 if 条件判断
                • 代码演示:
                • Thymeleaf 的循环迭代
                  • 代码演示:
                  • Thymeleaf 的内置对象
                  • 整合Thymeleaf的完整示例:
                    • 1、添加整合Thymeleaf的Starter
                    • 2、根据需要配置Thymeleaf的属性
                    • 【小技巧】:
                    • 3、修改元素、导入th:命名前缀。
                    • 演示代码:
                      • 1、创建项目
                      • 2、添加整合Thymeleaf的Starter
                      • 3、根据需要配置Thymeleaf的属性
                      • 4、接下来就简单写给登录页面和查看页面
                        • index登录页面
                        • controller
                        • 登录页面效果:
                        • 登录成功后跳转的首页
                        • main主页的效果:
                        • 查看图书的页面:
                        • 具体代码
                          • 前端代码:
                            • index.html
                            • main.html
                            • books.html
                            • 后端代码:
                              • ThymeleafController:

                                springboot 整合 Thymeleaf(Thymeleaf 的自动配置和基本语法及整合)

                                Spring Boot 支持如下模板技术:

                                FreeMarker

                                Groovy

                                Thymeleaf

                                Mustache

                                官方推荐使用 Thymeleaf

                                JSP不再被推荐。

                                Thymeleaf 的优势

                                Thymeleaf 标准方言中的大多数处理器都是属性处理器。

                                这种页面模版即使在未被处理之前,浏览器也可正确地显示HTML模板文件,因为浏览器会简单地忽略其不识别的属性。

                                比如这个:

                                 

                                主要优势在于:页面模板即使在未被Thymeleaf引擎处理之前,该页面也能被浏览器浏览、并呈现效果。

                                因为浏览器会直接忽略th:xxx属性。

                                Thymeleaf 在标准HTML元素中增加一些th:xxx属性

                                (出于降低学习难度考虑,而且xxx往往还和标准HTML元素的属性名相同)

                                在模板被解析之前,这些属性会被浏览器忽略;

                                在模板被解析之后,这些属性完全不存在了,因此它们丝毫不影响在浏览器中呈现效果,

                                这就是Thymeleaf的优势所在。

                                简单来说,它和传统 FreeMarker 的改进之处就在于:

                                Thymeleaf使用了th:xxx属性来输出动态内容,而FreeMarker使用子元素来输出动态内容。

                                Thymeleaf 整合Spring MVC(包括Spring WebFlux)之后的改变

                                1、在模板中使用Sp EL表达式取代了原来OGNL。

                                2、允许通过Sp EL语法访问Spring容器中的Bean,如${@myBean.method()}

                                3、在模板中创建的表单时,完全支持Bean和结果的绑定,包括使用PropertyEditor,转换,和验证等。

                                为了表单处理添加了th:field、th:errors和th:errorclass属性等。

                                4、允许通过Spring MVC管理国际化资源文件来显示国际化信息。

                                Thymeleaf自动配置主要由如下两个类提供支持

                                自动配置由如下两个类提供:

                                ThymeleafAutoConfiguration类对整合所需要的Bean进行自动配置,包括templateEngine和templateResolver的配置。

                                ThymeleafProperties类则对应application.properties文件中关于Thymeleaf的配置属性, 它负责读取该文件并设置Thymeleaf

                                基本语法

                                Thymeleaf引入 th 前缀

                                要使用这个 Thymeleaf ,需要在页面引入这个命名空间。

                                pom文件也需要加入thymeleaf的依赖

                                html 是根元素,把这个th命名空间引入进去,表示这整个html页面都能使用这个thymeleaf语法,都可以使用这个 th 前缀。

                                                    org.springframework.boot            spring-boot-starter-thymeleaf        

                                Thymeleaf 引入URL

                                包括导入各种资源等,都需要用到引入URL.

                                Thymeleaf对于URL的处理是通过语法@{…}来处理的。

                                绝对路径相对路径默认访问静态资源路径下css文件夹内的资源

                                Thymeleaf 表达式

                                Thymeleaf 提供了一些专门用于获取Web Context中请求参数、请求属性、会话属性和应用属性的表达式,这些表达式和JSP EL的功能非常相似。

                                ${x}:返回Thymeleaf上下文中的变量x或请求(HttpServletRequest)范围内的x属性的值。${param.x}:返回名为x的请求参数(可能是多值的)的值。${session.x}:返回会话(HttpSession)范围内的x属性的值。${application.x}:返回应用(ServletContext)范围内的x属性的值。

                                Thymeleaf 字符串操作

                                1、用加号(+)来拼接字符串。

                                很多时候可能只需要对一大段文字中的某一处地方进行替换,可以通过字符串拼接操作完成。

                                  

                                2、还有一种更简洁的方式

                                  

                                但这种形式限制比较多,|…|中只能包含变量表达式${…},不能包含其他常量、条件表达式等

                                Thymeleaf 的运算符

                                算术运算符

                                在表达式中可以使用各类算术运算符,例如+、-、*、/、%。

                                th:with="isEven=(${bookStat.count} % 2 == 0)"

                                逻辑运算符

                                逻辑运算符>, //登录方法 @PostMapping("/login") public String login(Model model , User user, HttpSession session){ if (user.getUsername().equals("ljh") && user.getPassword().equals("123456")){ //登录成功,进入首页 session.setAttribute("username","ljh"); session.setAttribute("role","manager"); return "main"; } //登录失败 model.addAttribute("error","用户名或密码不正确"); return "index"; } //查看图书方法 @GetMapping("/viewBooks") public String viewBooks(Model model){ List

上一篇:游戏中怎么连接服务器?

下一篇:英语问身体怎么样怎么说?