Kri*_*hna 62 model-view-controller jsf design-patterns spring-mvc
我听说JSF正在实现基于组件的MVC,而Spring MVC正在实现基于请求的MVC.我想知道这两种类型之间的确切技术差异是什么.
Bal*_*usC 94
在基于请求(动作)的MVC中,单个前端控制器servlet将根据请求URL /参数委托给动作模型.您可以直接使用动作模型中的原始对象HttpServletRequest和HttpServletResponse对象.您必须自己编写代码来收集,转换和验证请求参数,并在必要时更新模型值,然后才能调用业务操作.
在基于组件的MVC中,单个前端控制器将收集,转换和验证请求参数并更新模型值本身,这样您只需要自己担心业务操作.控制器如何收集/转换/验证/更新值在一个地方即视图中定义.由于"普通"HTML无法实现这一目标,因此需要使用特定的标记语言来实现目标.在JSF 2.0的情况下,这是基于XML(XHTML).您使用XML来定义UI组件,而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)的演讲中很好地概述了它:
| 归档时间: |
|
| 查看次数: |
18476 次 |
| 最近记录: |