Templates 更好的Thymeleaf模板易读性
在过去的几周里,我使用html5和文本模式创建了很多Thymeleaf模板。在这些模板中,我需要使用大量迭代Templates 更好的Thymeleaf模板易读性,templates,thymeleaf,Templates,Thymeleaf,在过去的几周里,我使用html5和文本模式创建了很多Thymeleaf模板。在这些模板中,我需要使用大量迭代上下文变量的th:each语句 在这些变量上,我经常访问它们的getter,而getter又返回我必须使用getter的其他对象,等等。 为了处理返回的数据,我需要应用strings.defaultString(…) 所有这些综合陈述使得阅读和理解正在发生的事情变得困难。我的模板中有很多行太长了,如果不水平滚动,它们就无法读取 我搜索了一些最佳实践,但只找到了一些描述如何创建的最佳实践,这
上下文
变量的th:each
语句
在这些变量上,我经常访问它们的getter,而getter又返回我必须使用getter的其他对象,等等。
为了处理返回的数据,我需要应用strings.defaultString(…)
所有这些综合陈述使得阅读和理解正在发生的事情变得困难。我的模板中有很多行太长了,如果不水平滚动,它们就无法读取
我搜索了一些最佳实践,但只找到了一些描述如何创建的最佳实践,这些最佳实践给出了将Thymeleaf与Spring结合使用的一般建议,或者提到了如何包括
有没有最佳做法可以在不对创建的html或文本造成负面影响的情况下格式化/包装Thymeleaf语句(例如不需要的换行)?您可以使用
th:with
创建变量,这样您就不必频繁执行objA.propB.propC
。因此,您将th:with=“propB=${objA.propB}”
然后用另一种好方法创建带有参数的可重用片段,这样任何重复的HTML都可以提取到片段中,并且该片段所需的数据可以作为参数传递 更新:
<div class="profile-user-info">
<th:block th:insert='~{::profileInfoRow("Name", ${user.name}) }' />
<th:block th:insert='~{::profileInfoRow("Age", ${user.age}) }' />
<th:block th:insert='~{::profileInfoRow("Location", ${user.location}) }' />
</div>
<div th:fragment="profileInfoRow(label, value)">
<div class="profile-info-row">
<div class="profile-info-name">[[${label}]]</div>
<div class="profile-info-value">[[${value}]]</div>
</div>
</div>
[${label}]]
[${value}]]
因此,上面是一种简单的方法,您可以创建HTML的可重用部分,然后通过传递动态参数的值,使用thymeleaf指令包含可重用部分。您可以使用
th:with
创建变量,这样您就不必频繁执行objA.propB.propC
。因此,您分配th:with=“propB=${objA.propB}”
然后在另一个良好的环境中创建可重用的片段approach@MohamedSanaulla好主意,你介意创造一个答案吗?我已经创造了答案。你能为后者举个例子吗?