Thymeleafチュートリアル:第11章コメントとブロック

目次



11コメントとブロック



11.1。 標準HTML / XMLコメント



標準のHTML / XMLコメント<!-...->は、Thymeleafテンプレートのどこでも使用できます。 これらのコメント内のすべてはThymeleafによって処理されず、そのままコピーされます。



<!-- User info follows --> <div th:text="${...}"> ... </div>
      
      





11.2。 Thymeleafパーサーレベルのコメントブロック



パーサーレベルのコメントは、解析時にテンプレートから単純に削除されるコードです。 それらを見てみましょう:



 <!--/* This code will be removed at Thymeleaf parsing time! */-->
      
      





Thymeleafは<!-/ *と* /->の間のすべてを削除するため、これらのコメントブロックは、テンプレートが静的に開いているときにコードを表示するためにも使用できます。



 <!--/*--> <div> you can see me only before Thymeleaf processes me! </div> <!--*/-->
      
      





これは、たとえば<tr>を多く含むテーブルのプロトタイピングに役立ちます。たとえば、次のようになります。



 <table> <tr th:each="x : ${xs}"> ... </tr> <!--/*--> <tr> ... </tr> <tr> ... </tr> <!--*/--> </table>
      
      





11.3。 Thymeleafプロトタイピングコメント



Thymeleafでは、プロトタイプデザインを表示するときに便利な特別なコメントブロックを定義できますが、Thymeleafからテンプレートを処理するときは通常のマークアップと見なされます。



 <span>hello!</span> <!--/*/ <div th:text="${...}"> ... </div> /*/--> <span>goodbye!</span>
      
      





Thymeleafのパーサーは、単に<!-/ * /および/ * /->マーカーを削除しますが、その内容は削除せず、コメントなしで残します。 出力でテンプレートを処理すると、以下が表示されます。



 <span>hello!</span> <div th:text="${...}"> ... </div> <span>goodbye!</span>
      
      





パーサーレベルのコメントブロックのように、この関数は方言に依存しません。



11.4。 合成th:ブロックタグ



Thymeleafの要素プロセッサ(属性ではなく)であり、標準方言に含まれているのはth:blockです。



th:ブロックは、テンプレート開発者が必要な属性を指定できる単純な属性コンテナです。 Thymeleafはこれらの属性を実行し、ブロックを削除しますが、その内容は削除しません。



したがって、これは、たとえば、各要素に複数の<tr>を必要とする繰り返しテーブルを作成する場合に便利です。



 <table> <th:block th:each="user : ${users}"> <tr> <td th:text="${user.login}">...</td> <td th:text="${user.name}">...</td> </tr> <tr> <td colspan="2" th:text="${user.address}">...</td> </tr> </th:block> </table>
      
      





プロトタイプのみのコメントブロックと組み合わせて使用​​すると、特に便利です。



 <table> <!--/*/ <th:block th:each="user : ${users}"> /*/--> <tr> <td th:text="${user.login}">...</td> <td th:text="${user.name}">...</td> </tr> <tr> <td colspan="2" th:text="${user.address}">...</td> </tr> <!--/*/ </th:block> /*/--> </table>
      
      





このソリューションにより、テンプレートを有効なHTMLにすることができることに注意してください(<table>内に禁止<div>ブロックを追加する必要はありません)。これをプロトタイプとしてブラウザーで開くと、引き続き正常に機能します!



All Articles