2016-03-27 15 views
0

レイアウトを変更して、他のタグのテンプレートから同じタイトルテキストを再利用し、テンプレートファイルのテキストが重複しないようにするにはどうすればよいですか?例を参照してください:Thymeleafを使ってレイアウトを使ってタイトルタグを再利用するには?

<html xmlns:layout="http://www.ultraq.net.nz/thymeleaf/layout"> 
    <head> 
     <meta charset="UTF-8"> 
     <title>Title from LAYOUT</title> 
    </head> 
    <body> 
     <h1>Title from LAYOUT</title> 
     <th:block layout:fragment="content">Default content</th:block> 
    </body> 
</html> 

そして、このテンプレート::

<html xmlns:th="http://www.thymeleaf.org" 
     xmlns:layout="http://www.ultraq.net.nz/thymeleaf/layout" 
     layout:decorator="layout"> 
    <head> 
     <title>Title from TEMPLATE</title> 
    </head> 
    <body> 
     <th:block layout:fragment="content"><p>My content</p></th:block> 
    </body> 
</html> 

希望レンダリングされたページがある:あなたは2の倍数を持つべきではない

<html> 
    <head> 
     <meta charset="UTF-8"> 
     <title>Title from TEMPLATE</title> 
    </head> 
    <body> 
     <h1>Title from TEMPLATE</title> 
     <p>My content</p> 
    </body> 
</html> 

答えて

0

h1タイトル要素にlayout:include="this :: title"というプロパティを付けてください。

レイアウト:

<html xmlns:layout="http://www.ultraq.net.nz/thymeleaf/layout"> 
    <head> 
     <meta charset="UTF-8"> 
     <title layout:include="this :: title">Title from LAYOUT</title> 
    </head> 
    <body> 
     <h1><th:block layout:fragment="title">Title from LAYOUT</th:block></h1> 
     <th:block layout:fragment="content">Default content</th:block> 
    </body> 
</html> 

テンプレート:

<html xmlns:th="http://www.thymeleaf.org" 
     xmlns:layout="http://www.ultraq.net.nz/thymeleaf/layout" 
     layout:decorator="layout"> 
    <th:block layout:fragment="title">Title from TEMPLATE</th:block> 
    <th:block layout:fragment="content"><p>My content</p></th:block> 
</html> 
0

(HTML

は、このレイアウトを有します&ヘッド&ボディ&タイトル)のタグを同じページに貼り付けたら、それらを削除してすべてのものを1つのボディに入れておく必要があります。

+1

は、合意された、レイアウトとテンプレートが実際に同じであるべきである、との線に沿って何か "があるファイルがあるはずですdesiredPageContent.html "は、体内に入るはずの場所に配置されています...私は間違った状況を理解していない限り、あなたのdef。右@Noor Adnan! :) – Metroidaron

+0

両方のファイルに複数のhead、body、eccタグを持つことは、スタティックプロトタイピングの一般的なプラクティスであり、htmlファイルがブラウザで開かれたときに正しくレンダリングされたhtmlページを見ることができます。 Thymeleafは要素マージ機能を使用します(https://github.com/ultraq/thymeleaf-layout-dialect#head-element-mergingを参照)。 –

-1

これにはHTML/CSS以上のものが必要です。私はPHP(サーバー側言語)で私の例を提供しますが、Python、Pearl、Ruby on Rails(おそらくこれまでに使用したことはない)、JSP(Java Server Side Pages)など...あなたのサーバーにPHPがインストールされている場合は、あなたの質問に答えるコードがあります。 :)

<?php $myTitle = "This is my title!"; ?> 

<html xmlns:layout="http://www.ultraq.net.nz/thymeleaf/layout"> 
<head> 
    <meta charset="UTF-8"> 
    <title><?php echo $myTitle; ?></title> 
</head> 
<body> 
    <h1><?php echo $myTitle; ?></title> 
    <th:block layout:fragment="content">Default content</th:block> 
</body> 

はここで何が起こっているの? PHPの1行目で、あなたのhtmlの文字列に相当する変数を宣言しています。その行は次のようになります。PHPの変数を実行して、その変数$ myTitleに何かを出力します。 PHPはサーバー上で実行され、ページを表示するユーザーには送信されません。したがって、あなたが探しているWebサイトは見つからないでしょう...

+0

お返事ありがとうございます。動的言語では、同じ変数を再利用すると結果を簡単にアーカイブできますが、問題はThymeleafのテンプレート継承機能を使用することです。 –

関連する問題