Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/templates/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Templates 更好的Thymeleaf模板易读性_Templates_Thymeleaf - Fatal编程技术网

Templates 更好的Thymeleaf模板易读性

Templates 更好的Thymeleaf模板易读性,templates,thymeleaf,Templates,Thymeleaf,在过去的几周里,我使用html5和文本模式创建了很多Thymeleaf模板。在这些模板中,我需要使用大量迭代上下文变量的th:each语句 在这些变量上,我经常访问它们的getter,而getter又返回我必须使用getter的其他对象,等等。 为了处理返回的数据,我需要应用strings.defaultString(…) 所有这些综合陈述使得阅读和理解正在发生的事情变得困难。我的模板中有很多行太长了,如果不水平滚动,它们就无法读取 我搜索了一些最佳实践,但只找到了一些描述如何创建的最佳实践,这

在过去的几周里,我使用html5和文本模式创建了很多Thymeleaf模板。在这些模板中,我需要使用大量迭代
上下文
变量的
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好主意,你介意创造一个答案吗?我已经创造了答案。你能为后者举个例子吗?