JSP,Sitemesh和Tiles铁杆 - 任何替代品?

Now*_*ker 5 jsp tiles spring-mvc sitemesh java-ee

Tiles和Sitemesh看起来很受欢迎但是这些东西真的很旧,与目前来自Ruby(ERB)或PHP(开放式电源模板)的当前很棒的东西相比看起来很糟糕.这些天模板引擎允许舒适的模板化(插入变量,根据上下文自动化,迭代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>
Run Code Online (Sandbox Code Playgroud)

示例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>
Run Code Online (Sandbox Code Playgroud)

我正在寻找更好的Facelets,这不需要我改变整个堆栈 - 我不会让整个项目适应JSF或Wicket只是为了使用更好的视图.

模板引擎不应该需要任何其他servlet或过滤器(没有基于URL的逻辑).我想以编程方式使用引擎.一个可能的用例是在Spring 3中定义自定义ViewResolver.

如果布局没有在配置文件中预先定义,那将是完美的.如果只是在模板文件中定义父视图,则不需要这样做.

该框架可能位于JSP之上,但并非如此.优点是可以使用其他框架(例如Spring)提供的taglib.

或者也许Sitemesh/Tiles中已经存在所有内容但需要大量配置?如果您知道任何允许实现所有上述目标的示例配置,请告诉我.

相关问题:Sitemesh有哪些替代方法可以帮助在Spring MVC应用程序中布局JSP/JSTL页脚/标题? - 我的问题也涉及模板,并不仅限于Spring Web MVC.

Boz*_*zho 4

我一直支持这样的观点:JSP 是一种足够好的视图技术,也可用于模板(使用包含)

对于编程处理,我使用速度,它相当简单明了。

我在 Java 世界中遇到的最好的视图技术是 grails 的 GSP,但是您可能需要将整个 Web 层迁移到 grails,这并不总是一个选择。

最后一点 - 无论你做什么,都不要使用 freemarker。它不必要地复杂,并且您无法轻松完成简单的任务。

  • 我以前读过这个。我不得不承认,拥有一个由 Sitemesh、Tiles、Velocity 和大量配置文件组成的复杂堆栈并不好。然而,简单的 JSP 对布局没有任何帮助,而且在模板方面也很弱。我已经习惯了 Ruby、PHP 等优秀的模板引擎,但在 Java(我大部分时间使用的堆栈)中却没有类似的模板引擎,这真是令人沮丧。:( (3认同)
  • 这是整个堆栈。我不明白为什么开发人员应该将现有项目迁移到 JSF 只是为了使用 Facelets,迁移到 Grails 只是为了使用 GSP,等等。 (3认同)