一段时间以来,我一直在寻找一个Java模板框架,它的工作方式类似于Jinja /Django的模板引擎。我发现似乎流行的是StringTemplate和FreeMarker,但似乎都不支持“块”( jinja/django )。
我所发现的是Jangod,它工作得很好--然而,它根本没有任何支持,没有任何人维护,也没有完成(即,没有文档)。
我也使用了Playframework的模板,遗憾的是,它与我正在开发应用程序的平台Google Appengine不兼容。
( TLDR;寻找一个仍然活着的Java模板框架,拥有像Java这样的块系统,并且可以在Appengine的严格规则下运行)
发布于 2012-09-03 05:49:13
看看Rythm模板引擎:http://rythmengine.com
jinja中的"block“特性在Rythm中称为"section”。因此假设您的布局模板(父模板)名为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上运行的。
https://stackoverflow.com/questions/12237759
复制相似问题