編集:
次の質問が解決されます!これはIncludes and Fragmentsを使用して行うことができます。
サム、あなたの答えは私の問題の一部を解決するためにsatsfactoryですが、私はまだ疑問があります。
このメソッドは、要素とそのすべての祖先をレイアウトで指定されたものに置き換え、元の要素の内容を保持します。
これはレイアウトではうまくいきますが、フラグメントの内容を置き換えるのはどうですか?
私は次のようなシナリオを想定しています。私はブートストラップウィジェットのライブラリを開発しています。 navbarのような一部のウィジェットには内部コンテナがあり、このコンテナには他の要素が含まれます。例:
断片指数インサイド/ navbar.html
<!-- navbar -->
<div th:fragment="navbar" class="navbar">
<div class="navbar-inner">
<a class="brand" href="#">Awesome Thymeleaf Navbar</a>
<ul class="nav">
<!-- children goes here -->
</ul>
</div>
</div>
<div>
。HTML
This is my Navbar:
<div th:replace="fragments/navbar :: navbar">
<li class="active"><a href="#">Home</a></li>
<li><a href="#">Link</a></li>
<li><a href="#">Link</a></li>
</div>
そして、次のような出力を得る:
This is my Navbar:
<!-- navbar -->
<div th:fragment="navbar" class="navbar">
<div class="navbar-inner">
<a class="brand" href="#">Awesome Thymeleaf Navbar</a>
<ul class="nav">
<li class="active"><a href="#">Home</a></li>
<li><a href="#">Link</a></li>
<li><a href="#">Link</a></li>
</ul>
</div>
</div>
<div>
あなたは違いを理解していますか?あなたが私に示した方法は、要素とその祖先を置き換えますが、内容を保存します。結果として、ドキュメントルート全体が置き換えられます。
状況によっては、置き換えられる要素だけを交換する必要があります。私はその親と内容も保つ必要があります。
私はそれが解決したと言いました。
レイアウト/ navbar.html:ここではこれを実装する方法の例を行く
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
<title>Home</title>
</head>
<body>This is my Navbar:
<div layout:include="layouts/navbar :: navbar" th:remove="tag">
<ul layout:fragment="navbar-content">
<li class="active"><a href="#">Home</a></li>
<li><a href="#">Link</a></li>
<li><a href="#">Link</a></li>
</ul>
</div>
</body>
</html>
document.html
は、名前空間を宣言することが本当に必要ですか?私は名前空間宣言なしでそれを作ったし、すべての作品は魅力のようだ。 – Natanael
サム、あなたの答えは私の問題の一部を解決するためにsatsfactoryですが、私はまだ疑いがあります。以下の詳細 – Natanael