哪种基于Java的MVC框架与ASP.NET MVC最相似?

4
在过去的几个月中,我一直在学习ASP.NET MVC,并且我认为它比ASP.NET有了巨大的改进。对于我个人而言,使用它很容易(与ASP.NET WebForms相反:))。我开始想知道,在没有任何这样的框架(至少没有被微软广泛支持)的情况下,.NET世界是如何管理长时间的。虽然可能存在一些Java MVC框架的.NET移植版本,例如Spring.NET,但并不会像ASP.NET MVC那样广泛地得到支持。
我知道Java开发者拥有这样的框架已经有很长时间了,并且有许多Java MVC框架供选择。
如果一个Web开发者正在考虑从Java切换到.NET,那么哪个Java框架最容易切换?反之,如果一个ASP.NET MVC开发人员正在考虑扩展他的技能并学习一些Java MVC(Web)框架,那么哪个框架在架构和功能上最类似于ASP.NET MVC?
哪个Java MVC框架最类似于ASP.NET MVC?

注意:我知道这个问题:http://stackoverflow.com/questions/248272/asp-net-mvc-framework-port-for-java-ee,但它没有提供我想要的答案 :) - Marek
我很乐意帮忙,但我不熟悉ASP.NET MVC。你能列出一些你喜欢的优点吗?这些优点是你真正喜欢并希望在Java框架中看到的,以便我们为你找到一个合适的框架。 - Esko
5个回答

2

SpringMVC、VRaptor和Grails(虽然不是Java本身,但在Java世界中具有一定的相关性)


谢谢,我已经看过VRaptor了,它的控制器看起来类似于ASP.NET MVC采用的方法,但我强烈反感为所有事情进行XML配置(在这个方面上SpringMVC似乎是最糟糕的)。而Groovy对我来说是一门太过陌生的语言了... - Marek
VRaptor中唯一强制配置的是IoC容器的扫描类路径的包。其他选项仅用于覆盖某些框架行为(如编码和自定义提供程序)。 - Lucas
是的,我已经发现没有太多涉及XML配置。VRaptor非常好,并且确实非常类似于ASP.NET MVC。谢谢! - Marek

2
我认为Play Framework非常不错。它将控制器作为类,操作作为方法,具有类似Razor的视图引擎,对象绑定器,几乎所有内容看起来都一样。
甚至路由似乎也几乎相同。

1

维基百科在这里列出了许多框架:

http://en.wikipedia.org/wiki/Comparison_of_web_application_frameworks

其中,基于Java技术的约一半是组件化的(这不是你想要的),另一半是MVC模式。如果感兴趣,您可以通过链接获取更多信息。

总的来说,

  • 成熟的框架通常会有更详细的介绍,无论在维基百科还是其他地方都有更多的文档、示例代码和教程等等。

  • 年轻的框架可能更简单、更有趣、更灵活,因为它们在老框架的基础上建立起来,消除已知的缺陷并增加新功能。例如,JSF和Struts在行业中很流行,但许多开发人员(需要引用文献)认为它们过时、笨重等等。

您可能很难从具有足够经验以直接比较.NET和Java产品的人那里得到答案。大多数开发人员倾向于留在某一方面。

虽然我对与ASP.Net的相似之处并不了解,但我认为Struts和JSF是Java领域中的工作马,即使它们不现代或性感,也是有用的履历内容。在这两个中,我认为Struts更具有MVC的感觉。


1
如果我正在寻找最简单的框架,我会深入研究Struts。Struts 1.0是在一天内编写的,可能是程序员花费时间最有价值的工作。
如果我想扩展我的知识和/或技能,我可能会倾向于Spring MVC。如果您需要Java Web开发的某些功能,很有可能其他人也需要它,并且Spring已经具备了这些功能。(Spring不仅仅是Spring MVC;您可以只使用Spring MVC,但如果您选择,它可以与更多内容很好地集成。)

我认为这可能偏离了OP关于寻找类似于ASP.NET MVC的问题。Spring倾向于在XML中编写整个应用程序,对此人们的看法不一,有些人认为这是好事,有些人则不然 :) - Carl Smotricz
如果您大多数情况下忽略IoC,并在逻辑上适合单例模式而不是Spring-wired-beans的情况下使用它们,那么您可以使用非常轻量级的XML来进行Spring。 - Dean J

0

Apache Struts :

Apache Struts是一个免费的开源框架,用于创建Java Web应用程序。

Web应用程序与传统网站不同之处在于,Web应用程序可以创建动态响应。许多网站仅提供静态页面。Web应用程序可以与数据库和业务逻辑引擎交互,以定制响应。

基于JavaServer Pages的Web应用程序有时会混合数据库代码、页面设计代码和控制流代码。实际上,我们发现,除非这些问题被分离,否则较大的应用程序将变得难以维护。

在软件应用程序中分离关注点的一种方法是使用模型-视图-控制器(MVC)架构。模型代表业务或数据库代码,视图代表页面设计代码,控制器代表导航代码。Struts框架旨在帮助开发人员创建利用MVC架构的Web应用程序。

该框架提供了三个关键组件:

  • 应用程序开发人员提供的“请求”处理程序,映射到标准URI。
  • “响应”处理程序将控制权转移到另一个资源,完成响应。
  • 标签库可帮助开发人员使用服务器页面创建交互式基于表单的应用程序。

该框架的架构和标签符合时下流行的潮流。Struts能够很好地与传统的REST应用程序以及像SOAP和AJAX这样的新兴技术配合使用。


1
谢谢您从描述中复制粘贴,如果有人遵循链接就可以阅读。您能否详细说明与ASP.NET MVC的相似之处? - Marek
我不使用asp mvc,但我听说struts很可能与asp mvc相似。 - Sajad Bahmani

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接