2017-09-07 7 views
0

私はこの文書に合わせて、thymeleafに問題があります。thymeleafフラグメントを使用してHTMLページの一部をレンダリングすることができました。コントローラーコードで使用しようとしました。Thymeleafがフラグメントにレンダリングする

@RequestMapping("/showContentPart") 
public String showContentPart() { 
... 
return "index :: content"; 
} 

とHTML

<div id="content"> 
    Only this will be rendered!! 
</div> 

中しかし、私が何をしたいのナビゲーションバーとdivの上のリンク上のユーザーのクリックによってレンダリングされるとレイアウトが他の言葉で、静的とどまるべきであるということです..私はしたいですレイアウトを維持してdivコンテンツを変更するには、リンクをクリックすると私はちょうど私のレイアウトなしでコンテンツを取得する、私は間違ってsomehtingをやっている?あなたは単にあなたのレイアウトでコンテンツを交換するモデル属性として自分のフラグメントの名前を渡すことができ

+0

Thymeleafはこの種の自動リフレッシュを実際にサポートしていません。これはサーバー側のレンダリング技術です。これを行うには、独自のJavaScriptを作成するか、別のフレームワークを使用する必要があります。 – Metroids

答えて

0

<div id="layout"> 
    <div th:include="index :: ${contentName}"></div> 
</div> 
:レイアウトページで

@RequestMapping("/showContentPart") 
public String showContentPart(Model model) { 
    model.setAttribute("contentName", "content") 
    return "layoutPage"; 
} 

を、あなたはこのようなあなたのコンテンツを含むことができ、

showContentPartメソッドはレイアウトページを返しますが、目的のコンテンツを返します。他のコンテンツを含める場合は、同様のメソッドを作成しますが、 "contentName"モデル属性の値が異なります。

+0

申し訳ありませんが、まだ動作していませんが、div内のフラグメントがまだ不足しています。 – zuzpapi1994

関連する問題