4

私はしばらくの間、Jinja / Django のテンプレート エンジンのように機能する Java テンプレート フレームワークを探していました。私が見つけた人気のあるものは StringTemplate と FreeMarker ですが、どちらも「ブロック」( jinja/django ) をサポートしていないようです。

私が見つけたのは Jangod で、うまく機能しますが、サポートがまったくなく、だれも保守しておらず、未完成です (つまり、ドキュメントがありません)。

Playframework のテンプレートも使用しましたが、残念ながら、現在アプリケーションを開発しているプラ​​ットフォームと互換性がありません。Google アプリエンジン。

(TLDR; まだ生きていて、jinja のようなブロック システムを持ち、Appengine の厳密なルールの下で実行できる Java テンプレート フレームワークを探しています )

4

1 に答える 1

1

Rythm テンプレート エンジンをご覧ください: http://rythmengine.com

jinja の「ブロック」機能は、Rythm では「セクション」と呼ばれます。したがって、レイアウト テンプレート (親テンプレート) が次のように呼ばれるとしmain.htmlます。

<h1>@get("title", "default main page")</h1>
<div id="left-panel">@render("leftPanel")<div>
<div id="right-panel">@render("rightPanel")</div>
<div id="main-content">@render()</div>
<div id="footer">
@render("footer"){
   @**
    * the content here is supplied if the child template failed 
    * to provide it's own footer implementation
    *@
   <div class="footer">copyright 2012 ...</div>
}
</div>

そして、ここにあなたのターゲットテンプレートがあります:

@extends(main)
@set(title: "My Cool Page")
@section("leftPanel") {
<ul class="menu">
...
</ul>
}

@section("rightPanel") {
<div class="news">
...
</div>
}

@*** note no "footer" section supplied so the default content will be used **@

@*** the rest is for the main content **@
...

この機能の実際のデモは、http://rythmengine.com/demo/testdefaultlayoutcontentにあります。

包括的なドキュメントはhttp://www.playframework.org/modules/rythmにあります。Play!Framework を対象としていますが、ほとんどのコンテンツは Play!Framework を使用しない純粋なリズム エンジンにも適用されます。

デモ自体が GAE で実行されているため、GAE について心配する必要はありません。

于 2012-09-02T21:49:12.867 に答える