Thymeleaf模板引擎二
1.自定义属性
刚开始根据参考文章,我是用了 th:abbr=”属性名=属性值” 的方式进行了自定义属性,但是很遗憾,出现了错误。
1 | <div th:text="${db.customerName}" th:abbr="del_uri=${db.customerName}" ></div> |
原来是我写错了,不是th:abbr,是th:attr,简直是个大坑啊。
1.springboot + thymeleaf静态资源访问404 (这篇其实和这个标题没有关系,主要就是使用@语法引用当前的静态文件)
2.springboot thymeleaf 需要使用data-*,自定义属性,获取值 (我使用了其中的方法,但是报错了。)
3.using data-* attribute with thymeleaf
2.输出null值
如果一个对象是null,使用thymeleaf输出,就会报错,比如下面的db.DbAlias不存在
1 | <div th:text="${db.customerName}" th:attr="data-dbalias=${db.DbAlias}" ></div> |
下面的两篇文章都没有解决我的问题。
1 | <!--不起作用--> |
使用了上面的很多的方法,最后还是会报:
1.Using Thymeleaf when the value is null (这是一个提问)
2.How to handle null values in Thymeleaf (这里有好多的方法,但是都不起作用)
3.静态资源问题
(1) 如果写成 <link href="/css/base.css" rel="stylesheet">
就是引用了绝对路径,部署到tomcat上的时候,就出现了 localhost:8080/css/base.css
,如果要要使用相对目录,可以使用
1 | <link th:href="@{css/base.css}" rel="stylesheet" /> |
@{}默认访问static下的css文件夹
注意
这里也有一个问题,就是使用了相对目录,但是如果路径是二级目录,则无法找到相应的文件夹。需要在html文件开头,加上命名空间th,才能识别@{}
1 | <html lang="en" xmlns:th="http://www.thymeleaf.org"> |
(2) 如果是html中嵌入的css文件,可以使用一个点进行引用。