首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >请求MVC和组件MVC的区别

请求MVC和组件MVC的区别
EN

Stack Overflow用户
提问于 2011-01-26 14:28:09
回答 1查看 19.9K关注 0票数 63

我听说JSF正在实现基于组件的MVC,而Spring MVC正在实现基于请求的MVC。我想知道这两种类型在技术上的区别是什么。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-01-26 20:20:08

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

在基于组件的MVC中,单个前端控制器将收集、转换和验证请求参数,并自行更新模型值,因此您只需自己考虑业务操作。控制器如何收集/转换/验证/更新值是在视图中定义的。由于“普通”HTML不可能做到这一点,因此需要一种特定的标记语言来实现这一目标。对于JSF2.0,这是基于XML (XHTML)的。您可以使用XML来定义UI组件,这些组件又包含有关控制器应该如何收集/转换/验证/更新模型值以及生成/呈现必要的HTML表示形式的信息。

在这一点上,优势和劣势应该是显而易见的:使用基于请求的MVC框架,您需要自己编写更多(样板)代码来实现目标。但是,您最终可以对流程和HTML/CSS/JS输出进行更细粒度的控制。使用基于组件的MVC框架,您不需要自己编写太多代码。但是,您对流程和HTML/CSS/JS输出的细粒度控制较少。因此,如果你想做一些与标准描述和/或实现提供的不同的事情,那么当你不太熟悉MVC框架的细节时,你会在基于组件的MVC框架上浪费更多的时间。

Manfred Riem (JSF2.x团队成员和前JavaEE8MVC1.0规范负责人)在his speech about MVC 1.0 (JSR 371) on Devoxx 14期间很好地概述了它

另请参阅:

票数 96
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4801891

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档