请求MVC和组件MVC之间的区别

我听说JSF正在实现基于组件的MVC,Spring MVC正在实现基于请求的MVC。 我想知道这两种类型之间的确切技术差异是什么。


在基于请求(动作)的MVC中,单个前端控制器servlet将根据请求URL / params委托给动作模型。 您直接使用操作模型中的原始HttpServletRequestHttpServletResponse对象。 您必须自己编写代码才能收集,转换和验证请求参数,并在必要时更新模型值,然后才能调用业务操作。

在基于组件的MVC中,单个前端控制器将收集,转换和验证请求参数并自行更新模型值,以便您只需要担心自己的业务操作。 该视图在一个地方定义了控制器如何收集/转换/验证/更新值。 由于“简单”HTML无法实现,因此需要特定的标记语言才能实现此目标。 在JSF 2.0的情况下,这就是基于XML(XHTML)的。 您使用XML来定义UI组件,这些组件又包含有关控制器应该如何收集/转换/验证/更新模型值并生成/呈现必要的HTML表示的信息。

在这一点上,优点和缺点应该清楚:使用基于请求的MVC框架,您需要自己编写更多(样板)代码以实现目标。 然而,你最终会对流程和HTML / CSS / JS输出进行更细致的控制。 使用基于组件的MVC框架,您无需自己编写大量代码。 但是,对流程和HTML / CSS / JS输出的细粒度控制较少。 因此,如果您想要做的事情与标准描述和/或实现提供的有所不同,那么当您不熟悉它的入口和出口时,您会在基于组件的MVC框架中浪费更多时间。

在Devoxx 14上关于MVC 1.0(JSR 371)的演讲中,Manfred Riem(JSF 2.x团队成员和前Java EE 8 MVC 1.0规范领导)已经很好地概述了它:

照片

也可以看看:

  • 当用户界面可以通过CSS,HTML,JavaScript,jQuery实现时,JSF需要什么?
  • Java Server Faces 2.0的主要缺点是什么?
  • 使用JSF作为Spring MVC的视图技术
  • Design Patterns基于Web的应用程序
  • 链接地址: http://www.djcxy.com/p/76539.html

    上一篇: Difference between Request MVC and Component MVC

    下一篇: Retrieving servlet context, session and request in a POJO outside container