让我们有两个表格支持类。
Person
- name (String)
- surname (String)
Application
- reason (String)
- date (Date)
- person (Person)
和一个Thymeleaf片段,它为这样的Person
对象呈现html表单:
<input name="name"/>
<input name="surname"/>
是否有可能在片段中重复使用相同的片段,该片段呈现Application
html形式的预期结果:
<input name="reason"/>
<input name="date"/>
<input name="person.name"/>
<input name="person.surname"/>
换句话说,在Person
是顶层形式的支持bean以及它是其他形式支持bean的一部分的情况下,是否可以普遍使用Thymeleaf形式片段?
答案 0 :(得分:0)
只需使用前缀并将其传递给您的模板即可。我希望你喜欢这个主意。在下面的代码中,应用程序片段也可以作为前缀并包含在另一种形式中。我没有测试过代码。如果出现问题,请告诉我。我在我的代码中使用了这样的结构。
<th:block th:fragment="person">
Name:<input type="text" th:field="*{__${prefix + 'name'}__}" />
Surname:<input type="text" th:field="*{__${prefix + 'surname'}__}" />
</th:block>
<th:block th:fragment="application">
Reason:<input type="text" th:field="*{__${prefix + 'reason'}__}" />
Date:<input type="text" th:field="*{__${prefix + 'date'}__}" />
<div th:replace="fragments/forms :: person" th:with="prefix=${prefix +'person.'}">
</th:block>