Spring MVC アプリケーションで Sitemesh 3 と Freemarker を使用しています。Freemarker ページの出力は、JSP デコレータを適用するために Sitemesh に渡されます (構成を整理すると FTL になります。これについては別の質問がありますが、まだ回答がありません)。
Sitemesh 3 で本文をテンプレートに正しく適用できたので、設定に追加して、FTL ビューでページの見出しにレンダリングされるプロパティを設定できるようにします。
Sitemesh (JSP) テンプレート/デコレータ - 変数コンテンツの見出しを除いて、これは正しい出力を生成します:
<div id="mainWrapper">
<div id="content">
<div id="contentheading"><sitemesh:write property="page.heading"></sitemesh:write></div>
<div>
<sitemesh:write property='body'/>
</div>
</div>
</div>
div#contentheading 要素でレンダリングされるプロパティを作成するには、.ftl で何をする必要がありますか?
カスタムフィルター実装を使用して、サイトメッシュ用の Java 構成があります。
public class SitemeshFilter extends ConfigurableSiteMeshFilter {
@Override
protected void applyCustomConfiguration(SiteMeshFilterBuilder builder) {
builder.setMimeTypes("text/html", "application/xhtml+xml");
builder.addDecoratorPath("/*", "/WEB-INF/templates/page.jsp");
}
}
Sitemesh 3 を使用していることに注意してください