java控制器属于表示层? 1 月,1 周 Questions & Answers 14332 我听说控制器属于表示层。怎么可能呢 我想: 视图用于演示 模型用于业务逻辑 控制器用于控制逻辑 是否有好的链接来证明控制器属于表示层 “SpringMVC用于表示层”:我们如何仅在表示层中使用MVC
# 1 楼答案 这在很大程度上取决于您使用的MVC的风格,以及您在什么环境中使用它 例如,ASP。NETMVC完全是一种UI模式,所以这三个部分都是表示的一部分 然而,在大多数MVC实现中,控制器与用户交互,因此是UI层的一部分。它可以处理按键和键盘输入。。。但在许多情况下,控制器还负责将模型和视图连接在一起 一个普遍的事实是,如果您无法控制,您不应该在控制器中执行业务逻辑。业务逻辑存在的位置取决于许多因素。在某些实现中,它可能是模型的一部分,也可能是MVC之外的独立层
# 2 楼答案 控制器控制表示层逻辑。对于所有业务代码、事务性用例、持久性等,它通常委托给服务层 一种典型的方法是将事务性服务实现为Springbean,并将这些Springbean注入控制器中。典型用例:创建新产品: 控制器从浏览器接收一个命令bean 它验证是否存在所有必需的数据,如果不存在,则重新显示带有错误消息的产品创建页面 它调用服务bean来创建产品 服务bean在事务中运行。它从数据库获取产品类别,将产品附加到其类别,根据当前的定价策略计算产品的价格,向外部应用程序发送JMS消息,并返回所创建产品的ID 控制器使用所创建产品的ID作为URL参数重定向到产品详细信息页面李>
# 3 楼答案 表示层包含视图和控制器 千万不要将MVC体系结构误认为是多层体系结构(尤其是三层体系结构)。大多数时候,模型/视图/控制器不是web应用程序的主要设计,它只是多层/分层体系结构的一个子集 看看这个过于简化的方案(您可以将DAO放在专用的数据访问层中,但这在本文中并不重要): SpringMVC是一个表示框架:它处理控制器和视图。但是为什么在春季MVC中出现“M”?这是因为,与许多其他表示框架一样,它自然地处理模型/实体(“M”)的表示。此表示是在控制器中使用的、在视图中显示的、在表单中提交的,等等。这就是框架被称为Spring MVC的原因,即使模型/实体不是PreSentation层的一部分强> 我认为它是这个框架的一个好名字,因为它实际上是面向“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)相比,在Struts中,您必须使用不同形式的对象 一些有趣的链接: Comparison between Multitier and MVC architecture,来自维基百科 ^ASP中的{a3}。网 This blog image of a 3-tier architecture DispatcherServlet chapter来自Spring的文档
# 1 楼答案
这在很大程度上取决于您使用的MVC的风格,以及您在什么环境中使用它
例如,ASP。NETMVC完全是一种UI模式,所以这三个部分都是表示的一部分
然而,在大多数MVC实现中,控制器与用户交互,因此是UI层的一部分。它可以处理按键和键盘输入。。。但在许多情况下,控制器还负责将模型和视图连接在一起
一个普遍的事实是,如果您无法控制,您不应该在控制器中执行业务逻辑。业务逻辑存在的位置取决于许多因素。在某些实现中,它可能是模型的一部分,也可能是MVC之外的独立层
# 2 楼答案
控制器控制表示层逻辑。对于所有业务代码、事务性用例、持久性等,它通常委托给服务层
一种典型的方法是将事务性服务实现为Springbean,并将这些Springbean注入控制器中。典型用例:创建新产品:
# 3 楼答案
表示层包含视图和控制器
千万不要将MVC体系结构误认为是多层体系结构(尤其是三层体系结构)。大多数时候,模型/视图/控制器不是web应用程序的主要设计,它只是多层/分层体系结构的一个子集
看看这个过于简化的方案(您可以将DAO放在专用的数据访问层中,但这在本文中并不重要):
SpringMVC是一个表示框架:它处理控制器和视图。但是为什么在春季MVC中出现“M”?这是因为,与许多其他表示框架一样,它自然地处理模型/实体(“M”)的表示。此表示是在控制器中使用的、在视图中显示的、在表单中提交的,等等。这就是框架被称为Spring MVC的原因,即使模型/实体不是PreSentation层的一部分强>
我认为它是这个框架的一个好名字,因为它实际上是面向“MVC”的。实际上,模型/实体的表示可以是:
Spring's recommendation是直接使用模型/实体(“M”)对象:
这就是为什么我说该框架是非常“MVC”导向的,与其他框架(如Struts)相比,在Struts中,您必须使用不同形式的对象
一些有趣的链接: