【发布时间】:2012-03-15 22:46:45
【问题描述】:
Tiles 和 Sitemesh 看起来很受欢迎,但与当前来自 e.g. Ruby (ERB) 或 PHP(Open Power 模板)。如今,模板引擎允许舒适的模板(插入变量、根据上下文自动转义、迭代 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 中已经存在所有内容但需要进行大量配置?如果您知道任何可以实现上述所有目标的示例配置,请告诉我。
相关问题:what alternatives exist to Sitemesh to help layout JSP/JSTL page footers/headers in a Spring MVC app? - 我的问题也涉及模板,并且不限于 Spring Web MVC。
【问题讨论】:
-
为什么你认为 Tiles 2 是老式的?我刚刚忽略了 ERB,但例如,您似乎可以使用 Tiles 2 和 Velocity 实现相同的功能。你需要什么?
-
这里不鼓励寻求框架建议。如果您想edit 提出所有此类请求,并将此问题设为可以在此处回答而无需单击异地的问题,请这样做并标记以重新打开。谢谢。
标签: jsp jakarta-ee spring-mvc tiles sitemesh