2016-05-19 24 views
0

2つのフォームバッキングクラスがあります。Spring MVC + Thymeleaf複合フォームバッキング豆

Person 
    - name (String) 
    - surname (String) 

Application 
    - reason (String) 
    - date (Date) 
    - person (Person) 

このようなPersonオブジェクトのHTMLフォームをレンダリングThymeleaf断片:

<input name="name"/> 
<input name="surname"/> 

期待結果とApplication HTMLフォームをレンダリング断片に同じフラグメントを再利用する働かはあり:すなわち

<input name="reason"/> 
<input name="date"/> 
<input name="person.name"/> 
<input name="person.surname"/> 

はThymeleafフォーム断片は場合Person場合に普遍的に使用することができますトップレベルのフォームバッキングBeanであり、他のフォームバッキングBeanの一部である場合も同様です。

答えて

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> 
関連する問題