控制器属于表示层?
2022-09-03 00:45:32
我听说控制器属于表示层。这怎么可能?
我以为:
- 视图用于演示
- 模型用于业务逻辑
- 控制器用于控制逻辑
有没有很好的链接来证明控制器属于表示层?
“Spring MVC用于表示层”:我们如何只在表示层中使用MVC?
我听说控制器属于表示层。这怎么可能?
我以为:
有没有很好的链接来证明控制器属于表示层?
“Spring MVC用于表示层”:我们如何只在表示层中使用MVC?
表示层包含视图和控制器。
不得将 MVC 体系结构误认为是多层/层体系结构(尤其是 3 层体系结构)。大多数时候,模型/视图/控制器不是Web应用程序的主要设计,它只是多层/层体系结构的子集。
看看这个过于简化的方案(你可以在专用的数据访问层中拥有DAO,但这在本文中并不重要):
Spring MVC是一个演示框架:它处理控制器和视图。但是为什么在春季MVC中使用“M”?只是因为,像许多其他表示框架一样,它自然地处理模型/实体(“M”)的表示。这种表示形式是控制器中使用的表示形式,显示在视图中,提交到表单中等。这就是为什么框架被称为Spring MVC,即使模型/实体不是预感层的一部分。
我认为它是这个框架的一个好名字,因为它真的是面向“MVC”的。实际上,模型/实体的表示可以是:
Spring的建议是直接使用模型/实体(“M”)对象:
可重用的业务代码,无需重复。使用现有业务对象作为命令或表单对象,而不是镜像它们来扩展特定的框架基类。
这就是为什么我说这个框架非常“MVC”导向,与其他框架相比,比如Struts,你必须使用不同的表单对象。
一些有趣的链接:
控制器控制表示层逻辑。对于所有业务代码、事务性用例、持久性等,它通常委托给服务层。
一种典型的方法是将事务性服务实现为弹簧豆,并将这些弹簧豆注入控制器中。典型用例:创建新产品: