Tiles 和 Sitemesh 看起来很流行,但与当前来自 Ruby (ERB) 或 PHP (Open Power Template) 的很棒的东西相比,这些东西真的很旧而且看起来很糟糕。如今,模板引擎允许舒适的模板(插入变量、根据上下文自动转义、遍历 Iterables、访问 bean 属性)和布局(例如页眉、页脚以及覆盖和添加到父级中定义的某些部分),而无需任何困难的配置,并且无需需要更改您当前的堆栈(例如您的 Web 框架)。
示例 parent.html:
<html>
<head>
<title>
<layout:part name="title">
Default title
</layout:part>
</title>
<layout:part name="head" />
</head>
<body>
<div class="menu" layout:part="menu">
default menu
</div>
<div class="content" layout:part="content" />
<div class="footer">
(c) me
</div>
</body>
</html>
示例 child.html
<layout:extend file="parent.html">
<layout:fill name="title">
Custom title
</layout:fill>
<layout:fill name="contnet">
the content
{$var} from model
</layout:fill>
</layout:extend>
我正在寻找更好的 Facelets,它不需要我更改整个堆栈——我不会为了使用更好的视图而将整个项目适应 JSF 或 Wicket。
模板引擎不应该需要任何额外的 servlet 或过滤器(没有基于 URL 的逻辑)。我想以编程方式使用引擎。一个可能的用例是在 Spring 3 中定义一个自定义 ViewResolver。
如果没有在配置文件中预先定义布局,那将是完美的。如果您只是在模板文件中定义父视图,则不需要这样做。
该框架可能位于 JSP 之上,但并非必须如此。优点是可以使用其他框架(例如 Spring)提供的标记库。
或者也许所有东西都已经存在于 Sitemesh/Tiles 中但需要大量配置?如果您知道任何可以实现所有上述目标的示例配置,请告诉我。
相关问题:Sitemesh 有哪些替代方案可以帮助在 Spring MVC 应用程序中布局 JSP/JSTL 页面页脚/页眉?- 我的问题也涉及模板,并且不仅限于 Spring Web MVC。