大家好,最近我开始探索 Spring MVC,因为目前我正在参与一个使用它的项目。在此之前,我检查了 Struts 2 框架。但是,在我看来,这两个框架对 MVC 设计模式 AngularJS 的定义和实现是不同的,因为客户端 MVC 框架也有自己的。我将解释我注意到 Spring MVC 和 Struts 2 之间的差异。
Spring:(引用Spring in Action)
1-控制器: 在Spring中,控制器是一个处理请求的组件,执行一些逻辑(理想情况下,这个逻辑应该被提取到一些服务或业务逻辑类中)并返回数据。
" DispatcherServlet 的工作是将请求发送到 Spring MVC 控制器。控制器是处理请求的 Spring 组件。但是典型的应用程序可能有多个控制器,并且 DispatcherServlet 需要一些帮助来决定将请求发送到哪个控制器。所以DispatcherServlet 查询一个或多个处理程序映射以确定请求的下一站将在哪里。处理程序映射在做出决定时将特别注意请求携带的 URL。 ” p166
2-模型:是一些需要带回给用户并显示在浏览器中的信息。
“控制器执行的逻辑往往会导致一些信息需要带回给用户并显示在浏览器中。这些信息被称为模型。”
3-视图:这是最明显的一个,它的HTML + CSS结合模型信息。
现在让我们看看 Struts 2 是如何实现 MVC 的
Struts2:(引用 Struts 2 in Action )
1-控制器:控制器是将url映射到适当动作的组件,动作在struts中实现模型?!(在春天,这不是控制器所做的)。Struts 只有一个控制器,即 FilterDispatcher。在 Spring 中,这是由 DispatcherServlet 完成的,他们不称之为控制器!
“控制器的工作是将请求映射到操作”
《控制器的角色由 Struts 2 FilterDispatcher 扮演》 p13
2-模型:模型,在struts中,是一个将业务日志和一些数据模型保存在一起的组件,这使得应用程序状态。
“模型由 Struts 2 动作组件实现” p13
“在更专业的术语中,模型是应用程序的内部状态。这个状态由数据模型和业务逻辑组成” p14
所以struts中的模型不仅仅是像User、Contract、Order这样的数据模型。它还包含应用程序的逻辑。
这是这两本书中表示的string和struts 2的两个图: Spring MVC
支柱 2
现在,哪个 MVC 是正确的 MVC ?
前端控制器 MVC 与谁相关?
感谢您提前回答。