听说controller属于表现层。怎么可能?
我认为:
- View 用于演示
- 模型用于业务逻辑
- Controller 用于控制逻辑
有没有好的链接证明controller属于表现层?
《Spring MVC用于表现层》:如何只在表现层使用MVC?
最佳答案
表示层包含 View 和 Controller 。
您一定不要将 MVC 架构误认为是多层/层架构(尤其是 3 层架构)。大多数时候,模型/ View / Controller 并不是 Web 应用程序的主要设计,它只是多层/层架构的一个子集。
看看这个过于简化的方案(您可以将 DAO 放在专用的数据访问层中,但这在这篇文章中并不重要):
Spring MVC 是一个表示框架:它处理 Controller 和 View 。但是为什么 Spring MVC 中的“M”呢?只是因为,与许多其他表示框架一样,它自然地处理模型/实体(“M”)的表示。这种表示是在您的 Controller 中使用的,在您的 View 中显示的,在您的表单中提交的,等等。这就是框架称为 Spring MVC 的原因,即使模型/实体不是表示层的一部分。强>
我认为这是这个框架的好名字,因为它确实是面向“MVC”的。实际上,模型/实体的表示可以是:
- 直接:框架直接处理模型/实体对象
- 间接:框架处理一个表单对象或 DTO,其中包含与一个或多个实体相关的信息
Spring's recommendation是直接使用模型/实体(“M”)对象:
Reusable business code, no need for duplication. Use existing business objects as command or form objects instead of mirroring them to extend a particular framework base class.
这就是为什么我说该框架非常“面向 MVC”,与其他框架相比,例如 Struts,您必须使用不同的表单对象。
一些有趣的链接:
关于java - Controller属于Presentation层?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12429729/