Difference between Request MVC and Component MVC
我听说JSF正在实现基于组件的MVC,而Spring MVC正在实现基于请求的MVC。 我想知道这两种类型之间的确切技术区别是什么。
在基于请求(动作)的MVC中,单个前端控制器servlet将基于请求URL /参数委派给动作模型。您可以直接在操作模型中使用原始的
在基于组件的MVC中,单个前端控制器将收集,转换和验证请求参数并自己更新模型值,因此您只需要自己担心业务操作。控制器如何在单个位置(视图)中定义如何收集/转换/验证/更新值。由于使用"普通" HTML无法做到这一点,因此需要一种特定的标记语言才能实现该目标。如果是JSF 2.0,则基于XML(XHTML)。您使用XML定义UI组件,这些组件又包含有关控制器应如何收集/转换/验证/更新模型值以及生成/呈现必要的HTML表示的信息。
此时的优点和缺点应该很明显:使用基于请求的MVC框架,您需要自己编写更多(样板)代码来实现目标。但是,最终您可以对流程和HTML / CSS / JS输出进行更精细的控制。使用基于组件的MVC框架,您无需自己编写太多代码。但是,您对过程和HTML / CSS / JS输出的粒度控制较少。因此,如果您想做的事情与标准描述和/或实现所提供的有所不同,那么当您对基于组件的MVC框架一无所知时,会浪费更多的时间。 。
Manfred Riem(JSF 2.x团队成员和前Java EE 8 MVC 1.0规范负责人)在Devoxx 14上关于MVC 1.0(JSR 371)的演讲中很好地概述了这一点:
也可以看看:
- 当可以通过CSS,HTML,JavaScript,jQuery实现UI时,JSF有什么需求?
- Java Server Faces 2.0的主要缺点是什么?
- 使用JSF作为Spring MVC的视图技术
- 基于Web的设计模式应用程序