繁体   English   中英

具有主模板和子视图的Java HTML View Engine

[英]Java HTML View Engine with Master Templates and Sub Views

我正在拼命寻找一个能够满足三个主要要求的Java HTML视图引擎:

  1. 支持主模板页面。
  2. HTML模板可以用作其他模板中的子视图。
  3. HTML模板不必由配置文件或Java类支持。

它用于Java Web应用程序,主要由只读页面和一些带有表单的页面组成。 我很可能将其与MVC框架结合使用。

主模板页面

HTML的主要结构应由HTML主页面定义。 不同的页面仅提供了放入主页面以创建最终页面的核心内容。 这不仅仅是包含页眉和页脚。

子检视

页面应该能够将其他HTML页面/模板用作其自身内容内的子视图。 它应该能够传递至少一个参数来提供子视图需要显示的数据。 此外,应该有可能在子视图中递归使用其他子视图。 同样,这超出了简单的包含机制。

没有后盾

HTML模板应包含一个文件,该文件基本上是HTML或XML页面,其中将根据提供的数据替换某些部分。 他们不需要任何其他(每个模板)配置文件。 而且,他们不需要实现任何Java类来进行支持。

我已经看过许多Java模板引擎。 但是它们似乎都不满足这些要求。 (在.NET世界中,带有Razor视图引擎的ASP.NET MVC会是一个完美的选择。)

更新:

到目前为止,我已经研究了以下引擎(请让我知道是否忽略了其中一种引擎来满足要求的方法):

  • JSP :仅有一个非常基本的包含机制,而没有主模板或对子视图的适当作用域等。
  • 速度 :具有稍微高级的包含机制,但是没有母版页。
  • FreeMarker :包含机制,没有母版页。
  • Tapestry :基于组件的良好子视图以及模板机制。 但是,如果没有框架的其余部分,使用模板引擎部分似乎不太可能,因为框架的其余部分过于以页面为中心,无法与MVC框架结合使用。
  • Tiles :每个最后一页需要两个jsp页面。 这两个层(tiles和jsp)使其过于复杂,尤其是对于子视图而言。

更新(2):我更改了一个术语: 视图引擎而不是模板引擎子视图而不是components

您还没有真正看过模板引擎。 JSP,Velocity和FreeMarker不是模板引擎(就您而言,它是模板引擎的意思)。 它们是允许动态生成标记并从Java对象获取要显示在生成的HTML中的数据的语言。 Tapestry是一个基于组件的完整的Web应用程序框架。

如果使用JSP生成HTML页面,则可以在JSP之上使用模板引擎,例如Tiles或SIteMesh,它们将处理模板,从而允许整个页面的每个“组件”有一个JSP。 如果没有诸如Stripes,Spring MVC或Struts2之类的Web MVC框架,通常不应使用JSP。 所有这些都具有自己的模板支持,和/或支持集成另一个诸如SiteMesh或Tiles。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM