【问题标题】:Component base MVC framework and action based MVC framework基于组件的 MVC 框架和基于动作的 MVC 框架
【发布时间】:2012-02-19 09:13:56
【问题描述】:

您好,我使用过 JSF,它是一个基于组件的 MVC 框架。我知道很多 Web 项目都使用 Spring 作为他们的技术,并且 Spring 属于“基于动作的 UI 框架”类别。我想知道这里有什么区别?哪一个更先进,给用户更多的灵活性?一些优点和缺点?

【问题讨论】:

标签: model-view-controller jsf spring-mvc


【解决方案1】:

基于组件的 Web 框架是一种实现基于 Web (HTTP) 的应用程序的方法,类似于 thick-client 应用程序,其中用户操作 GUI 控件,这些控件会根据事件触发操作。这里视图(网页)是应用程序的核心部分。

Action Based Web Framework 强调 HTTP 协议的请求-响应性质,其中请求表示要执行的操作(通常:请求 URI 映射到操作,请求参数/正文映射到操作参数)。这里的视图只是呈现操作/动作结果的一种方式。

两种模式各有利弊。前者似乎更容易(尤其是如果有 Swing 背景的人),但从长远来看,HTTP 的 req-res 特性会妨碍程序员。后者更自然地适合 HTTP 并允许编写更多可测试的代码(控制器)。

附言Java web 应用程序从 MVC 到基于组件的框架,或者更确切地说,首先是 Struts 等,然后是 JSF。在 .NET 世界中,首先是 ASP.NET,然后是 ASP.NET MVC。

【讨论】: