模板引擎
模板的诞生是为了将显示与数据分离,模板技术多种多样,但其本质是将模板文件和数据通过模板引擎生成最终的HTML代码。
模板技术并不是什么神秘技术,干的是拼接字符串的体力活。模板引擎就是利用正则表达式识别模板标识,并利用数据替换其中的标识符。
Thymeleaf 使用总结
- Thymeleaf 是一个Java类库,它是一个xml/xhtml/html5的模板引擎,可以作为MVC的web应用的View层。
- Thymeleaf 是一个跟 Velocity、FreeMarker 类似的模板引擎,它可以完全替代 JSP 。
是Springboot推荐使用的模板引擎。 - spring-boot下,默认约定了Controller试图跳转中thymeleaf模板文件的前缀prefix是”classpath:/templates/”,后缀suffix是”.html”
1、非严格声明
在默认配置(spring.thymeleaf.mode的默认值是HTML5)下,thymeleaf对.html的内容要求很严格
因此,改为LEGACYHTML5可以得到一个可能更友好亲切的格式要求。建议增加下面这段:
spring.thymeleaf.mode = LEGACYHTML5
或yml格式文件
#thymeleaf
thymeleaf:
mode: LEGACYHTML5
cache: false
pom.xml中增加
<dependency>
<groupId>net.sourceforge.nekohtml</groupId>
<artifactId>nekohtml</artifactId>
<version>1.9.22</version>
</dependency>
2、th标签整理
1)简单表达式
- 变量表达式 ${……}
- 选择/星号表达式 *{……} 选择表达式一般跟在th:object后,直接取object中的属性。
- 文字国际化表达式 #{……} 调用国际化的welcome语句,国际化资源文件如下
- URL表达式 @{……}
2)表达式基本对象
在上下文变量评估OGNL表达式时,一些对象表达式可获得更高的灵活性。这些对象将由#号开始引用。
- #ctx: 上下文对象.
- #vars: 上下文变量.
- #locale: 上下文语言环境.
- #httpServletRequest: (仅在web上文)HttpServletRequest 对象.
- #httpSession: (仅在web上文) HttpSession 对象.
3)表达式功能对象
- #dates:java.util.Date对象的实用方法。