2

Thymeleaf を使用して (JSF のように) 複合コンポーネントを作成する方法はありますか? 式言語を使用して取得できるフラグメントにパラメーターを送信する方法を見つけました。しかし、JSF のようにマークアップをフラグメントに送信する方法がわかりません。

たとえば、左側に非常によく似たメニューがあるページがいくつかあります。すべてのページで単一のフラグメントを使用できるようにしたいのですが、メニューの下部に表示されるマークアップを渡します。下部にテキストを表示する必要があるページもあれば、テキストを表示する必要があるページもあります。たとえば、実際にはそれよりも複雑です。

<div class="menu" th:frament="menu">
    <a th:text="${menuItem1}"></a>
    <a th:text="${menuItem2}"></a>
    <a th:text="${menuItem3}"></a>
    <markup sent as parameter /> <!-- how do I do this? -->
</div>



<div th:substitueBy="template :: menu" th:with="menuItem1=item1, menuItem2:item2, menuItem3:item3">
    <markup to be sent as parameter /> <!-- this does not work -->
</div>
4

2 に答える 2

0

次のようなことができます。

ただし、使用するすべてのページにすべてのメニュー コンテナ属性を書き込む必要があります。

私はこの方法が本当に好きではありませんが、うまくいくはずだと思います:p

テンプレート:

<div th:frament="menu">
    <a th:text="${menuItem1}"></a>
    <a th:text="${menuItem2}"></a>
    <a th:text="${menuItem3}"></a>
</div>

ページ:

<div class="menu">
    <div th:include="template :: menu" 
         th:remove="tag" 
         th:with="menuItem1=item1, menuItem2:item2, menuItem3:item3" />
    <more markup/>
</div>
于 2013-06-21T08:25:00.143 に答える