2

我来自 .NET 背景,需要用 Java 做一个 Web 项目。我已经阅读了所有不同的 Java Web 框架:JSF、Stripes、Wicket、Tapestry 等。

但我想听听那些对这些框架有实际专业知识的人的意见。

当然,我想要一个最新的框架,支持 AJAX,很酷等等,但我的主要标准之一是能够以某种方式创建可重用的组件/标签。客户需要能够在没有太多问题的情况下移动标签/组件,以便根据他们的特定需求对其进行定制。

在 ASP.NET Webforms 中,我会为此使用自定义控件和用户控件,而在 ASP.NET MVC 中,我会使用用户控件以及自制的自定义控件。那么哪些 Java 框架在这方面表现出色呢?

我自己的肤浅研究似乎得出结论,JSF 支持某种自定义控件(请记住,我不仅在谈论布局重用,而且还谈论行为重用,因此,例如,如果客户/客户想要在第 x 页上的客户列表而不是仅在页面 Y 上,他会简单地放入一个<jr:CustomerList runat="server" .... />(使用 ASP.NET Webforms 语法的虚构示例))。

4

2 回答 2

1

我认为大多数 Java Web 框架都允许您重用组件和/或标签。它们在灵活性、控制、标准组件的可用性和搜索引擎友好 URL 等功能方面有所不同。

基本上有两类框架:基于组件(JSF、Wicket、Tapestry、GWT)和基于动作(Struts、Stripes、Webworks、Spring)。两者都允许您重用组件,但基于组件的框架隐藏了低级别的 http 内容并允许您使用状态完整的服务器组件。

哪种类型最好取决于您的需求。您是否需要最大程度地控制您的 HTML、高性能、搜索引擎友好的 URL,那么我更喜欢基于操作的框架。如果您更喜欢隐藏 http 端并希望像构建 Windows 应用程序一样进行更高级别的编程,那么我认为您最好使用基于组件的框架。

JSF:一个复杂的框架,大多数程序员认为它不是很优雅。但是因为它是 Java EE 标准的一部分,所以它是一个事实上的标准。

Wicket:就像 JSF 一样是一个基于组件的框架。但它更加直接和优雅(您可能还想考虑 Click)。

Tapestry:也是一个组件框架,它的标准组件库似乎特别强大,用于构建强大的 Web 应用程序。

Stripes:我个人最喜欢的,它是一个简单、非常优雅且易于学习的 MVC 框架。由于它不是基于组件,而是基于动作的框架,因此它提供了最大的灵活性。它使您可以完全控制生成的 HTML(因为大多数基于组件的框架不能)。它允许您通过重用 Java 控制器使用的模板来重用组件。最终用户可以简单地自定义 HTML 模板或使用您的自定义标签。我选择这个框架是因为它支持搜索引擎友好的链接生成。

于 2010-03-31T19:28:34.577 回答
1

我推荐挂毯

Jumpstart中的示例(请参阅“创建组件”)。如果您无法访问 8080 端口,请访问主页

Tapestry 组件和页面由一个 XHTML 文件和一个 Java 源文件(如 CustomerList.java 和 CustomerList.tml)组成。该组件是独立的,几乎可以做任何页面可以做的事情。然后将组件添加到页面的 HTML 中,如下所示<t:CustomerList />

您还可以定义自己的参数,例如

<t:CustomerList myCustomers="accountsPayable" ... />.

在我看来,这是一个比 JSF 更优雅的解决方案,而且我认为 Tapestry 的 IoC 容器使它比 Wicket 更强大。我们将 Tapestry 用于拥有几千名用户的 Intranet。

于 2010-03-31T20:50:22.837 回答