thymeleaf th:fragment高级应用

ThymeLeaf模板 ginotang 4323℃ 0评论

fragment高级技巧

前面的文章中已经大概介绍了fragment的创建和引用,但是fragment并不是就这么简单。

下面介绍fragment的一些高级应用。

为fragment添加参数

在引用这个模板的时候就可以同时传递参数给它:

即使在定义fragment的时候没有明确给出形参,在调用它的时候依然可以为它传参:

弹性布局,不仅仅只是插入那么简单

得益于thyme leaf的fragment表达式语法,我们不仅仅可以为fragment传递普通的参数,还可以把整个预先创建的fragment作为参数传递给另一个fragment。

创建一个fragment(base.html):

使用fragment(home.html):

home.html中head标签里面的所有title和link标签会作为参数名称被传递到fragment中去,解析后的结果是:

可以理解为模板的继承。如果传递的参数为~{},则认为是一个空的参数,base.html中用th:replace标记的相关标签不会解析。如果传递进去的是一个不操作符号(_)下划线,则base.html中的title标签会被保留。例如:

解析后的结果是:

当传递的参数是下划线或者~{}空参数的时候,它们是根据参数的名称来匹配相关标签的。如第一个参数是${title},那么下划线或者空参数对应的就是title标签。

删除指定标签

使用th:remove可以在运行时删除指定的html元素。

一般在原型设计的时候,会添加一些模仿数据,以便更好地表现页面的数据显示,例如:

问题是,在解析模板的时候,odd及其后面的行都会被保留下来,这不是我们希望看到的结果,因为它们只是静态数据。使用th:remove就可以在运行时删除它们:

当程序运行,那些模拟的数据行就会被删除。

th:remove的值可以是:

all :                  删除容器及其子元素
body :              删除子元素,保留容器
tag :                 删除容器,保留子元素
all-but-first : 保留第一个子元素
none :             什么也不干

转载请注明:Pure nonsense » thymeleaf th:fragment高级应用

喜欢 (3)
0 0 投票数
文章评分
订阅评论
提醒
guest
0 评论
内联反馈
查看所有评论
0
希望看到您的想法,请您发表评论x
()
x