Spring MVC + Thymeleaf复合形式支撑豆

时间:2016-05-19 08:12:50

标签: java spring-mvc thymeleaf

让我们有两个表格支持类。

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形式片段?

1 个答案:

答案 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>