你好,我曾经使用过JSF,它是一个基于组件的MVC框架。我知道很多Web项目使用Spring作为技术栈,而Spring属于“基于动作的UI框架”类别。我想知道它们之间的区别是什么?哪个更先进并且给用户更大的灵活性?有哪些优缺点?
你好,我曾经使用过JSF,它是一个基于组件的MVC框架。我知道很多Web项目使用Spring作为技术栈,而Spring属于“基于动作的UI框架”类别。我想知道它们之间的区别是什么?哪个更先进并且给用户更大的灵活性?有哪些优缺点?
组件化的Web框架是一种实现基于Web(HTTP)的应用程序的方式,类似于用户在GUI控件上操作并触发事件的“厚客户端”应用程序。在这里,视图(网页)是应用程序的核心。
基于操作的Web框架强调HTTP协议的请求响应性质,其中请求表示要执行的操作(通常:请求URI映射到操作,请求参数/正文映射到操作参数)。在这里,视图只是呈现操作/动作结果的一种方式。
两种模型都有优点和缺点。前者似乎更容易(特别是对于有Swing背景的人),但从长远来看,HTTP的请求-响应性质会妨碍程序员。后者更符合HTTP的自然适应性,并允许编写更可测试的代码(控制器)。
p.s. Java Web应用程序从MVC转向组件化框架,或者更确切地说,先出现了Struts等框架,然后出现了JSF。在.NET世界中,先出现了ASP.NET,然后是ASP.NET MVC。