Spring mvc 请求MVC和组件MVC之间的区别
我听说JSF正在实现基于组件的MVC,而SpringMVC正在实现基于请求的MVC。我想知道这两种类型的确切技术区别是什么 在基于请求(操作)的MVC中,单个前端控制器servlet将根据请求URL/参数委托给操作模型。您可以直接使用动作模型中的原始Spring mvc 请求MVC和组件MVC之间的区别,spring-mvc,jsf,design-patterns,model-view-controller,Spring Mvc,Jsf,Design Patterns,Model View Controller,我听说JSF正在实现基于组件的MVC,而SpringMVC正在实现基于请求的MVC。我想知道这两种类型的确切技术区别是什么 在基于请求(操作)的MVC中,单个前端控制器servlet将根据请求URL/参数委托给操作模型。您可以直接使用动作模型中的原始HttpServletRequest和HttpServletResponse对象。在调用业务操作之前,您必须自己编写代码来收集、转换和验证请求参数,并在必要时更新模型值 在基于组件的MVC中,单个前端控制器将收集、转换和验证请求参数,并更新模型值本身
HttpServletRequest
和HttpServletResponse
对象。在调用业务操作之前,您必须自己编写代码来收集、转换和验证请求参数,并在必要时更新模型值
在基于组件的MVC中,单个前端控制器将收集、转换和验证请求参数,并更新模型值本身,因此您只需要自己担心业务操作。控制器需要如何收集/转换/验证/更新值在一个地方即视图中定义。由于“普通”HTML不可能做到这一点,因此需要一种特定的标记语言来实现这一目标。对于JSF2.0,这是基于XML(XHTML)的。您可以使用XML定义UI组件,这些组件又包含控制器应如何收集/转换/验证/更新模型值以及生成/呈现必要HTML表示的信息
在这一点上,优势和劣势应该是清楚的:对于基于请求的MVC框架,您需要自己编写更多(样板)代码来实现目标。但是,您最终可以对流程和HTML/CSS/JS输出进行更细粒度的控制。使用基于组件的MVC框架,您不需要自己编写太多代码。但是,您对流程和HTML/CSS/JS输出的细粒度控制较少。因此,如果您想做一些与标准描述和/或实现提供的有所不同的事情,那么当您不熟悉基于组件的MVC框架的细节时,您将在基于组件的MVC框架中浪费更多的时间
Manfred Riem(JSF 2.x团队成员和前Java EE 8 MVC 1.0规范负责人)在以下会议上很好地概括了这一点:
另见: