`
wldandan
  • 浏览: 3368 次
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

关于Struts MVC的疑惑

阅读更多
关于struts 的 web MVC,一直有个疑惑,请大家帮我理解一下.

在Struts中,"M" 应该指的什么?
  在struts中,我一直理解为ActionServlet作为 "C",Action以及ActionForm 等作为"M",jsp作"V".

  但看了spring的web mvc,引入了Front Controller,由DispatchSevlet作为一个分发器,将请求分发给Controller,在返回ModelAndView......

对比而言,如果将Struts中ActionServlet也理解为一个分发器,而将它的Action理解为"C",是不是也可以行的通?
不知道大家怎么看待Struts的MVC的.

 
分享到:
评论
10 楼 抛出异常的爱 2007-05-29  
model 包括行为与属性 form+action比较合试。。
action并不决定向何方向分发页面。

Controller 是actionservlet + struts-config

V是指由jsp ->servlet而jsp本身不是V 只是个工具类而已。
9 楼 toowzh 2007-05-29  
看看官方的介绍,我理解Action和ActionServlet一样也是Controller:

The framework provides its own web Controller component and integrates with other technologies to provide the Model and the View. For the Model, the framework can interact with standard data access technologies, like JDBC and EJB, as well as most any third-party packages, like Hibernate, iBATIS, or Object Relational Bridge. For the View, the framework works well with JavaServer Pages, including JSTL and JSF, as well as Velocity Templates, XSLT, and other presentation systems.

The framework's Controller acts as a bridge between the application's Model and the web View. When a request is received, the Controller invokes an Action class. The Action class consults with the Model (or, preferably, a Facade representing your Model) to examine or update the application's state. The framework provides an ActionForm class to help transfer data between Model and View.

Most often, the Model is represented as a set of JavaBeans. Typically, developers will use the Commons BeanUtils to transfer data between ActionForms and the Model objects (or a Facade). Preferably, the Model will do the "heavy lifting", and the Action will act as a "traffic cop" or adapter.

8 楼 wldandan 2007-03-26  
为什么很多书上提到struts时,一直都说ActionServlet是MVC的Controller呢?
7 楼 生命火花 2007-03-26  
FORM -> M
ACTION -> C
JSP -> v

OTHERS -> STRUTS自己的扩展
6 楼 wldandan 2007-03-26  
引用
struts是个框架技术而已。 module对应formbean。 controller对应action。 view对应jsp。ActionServlet的处理实际上还有交给Action做的,感觉应该属于C。
流程如下:
jsp --- form --- VO --- action(Control) --- PO \ / \ / 调用业务层对象\ /作为参数传到业务层 \ / \ / Model | | | 调用相应的持久化方法,把PO作为参数 ------------------------------------- jsp --- form --- VO 这三者,我们都可以理解为是展示层的东西, action是控制层, Model 是业务层,业务层可能要调用持久层的一些方法。 在展示层,我们只能够操作 VO , 在业务和持久层,我们只能操作 PO , 在action 中,我们可以对 两者之间进行转换,这样就达到了分层的目的,而且,在页面不会出现持久化对象,在业务层也不会出现值对象。 好的分层,可以是各个层次之间的偶合度很小,当一个部分发生改变的时候,只需要改变相应层次之间的映射,而不必改变其他的层。


你的module 和 model是什么关系?

我觉得
引用
M是放数据用的,v从M里拿数据显示
比较好理解

formbean 是 model, Action等都认为是Controller,在Action中控制如何获取需要的Model即可
5 楼 giscat 2007-03-26  
MVC的精髓是分层思想
  但是有不少人搞歪了
  分层好啊,啥都分一分,直接搞5,6层,7,8层出来
   这样硬搞就不好罗
4 楼 qinysong 2007-03-26  
MVC是八十年代Smalltalk80引入的一种用户界面应用程序设计模型,经过二十多年的发展,到现在无论是Struts,Spring还是其他框架模型,都不能完全按照MVC去分解了,而是角色更加明确,分工更加细致。

对于刚刚了解面向对象分层体系的人,可以借助MVC去理解,去切入

这是我的理解
3 楼 wlcome998 2007-03-26  
struts是个框架技术而已。 module对应formbean。 controller对应action。 view对应jsp。ActionServlet的处理实际上还有交给Action做的,感觉应该属于C。
流程如下:
jsp --- form --- VO --- action(Control) --- PO \ / \ / 调用业务层对象\ /作为参数传到业务层 \ / \ / Model | | | 调用相应的持久化方法,把PO作为参数 ------------------------------------- jsp --- form --- VO 这三者,我们都可以理解为是展示层的东西, action是控制层, Model 是业务层,业务层可能要调用持久层的一些方法。 在展示层,我们只能够操作 VO , 在业务和持久层,我们只能操作 PO , 在action 中,我们可以对 两者之间进行转换,这样就达到了分层的目的,而且,在页面不会出现持久化对象,在业务层也不会出现值对象。 好的分层,可以是各个层次之间的偶合度很小,当一个部分发生改变的时候,只需要改变相应层次之间的映射,而不必改变其他的层。
2 楼 giscat 2007-03-26  


M是放数据用的,v从M里拿数据显示

 
 
1 楼 sprite 2007-03-26  
以前也有在论坛上讨论过
我个人觉得把ActionServlet和Action看作"C"更好一些.
特别是在使用Struts+DAO  Struts+Spring+hibernate这些方式时,作为控制器的功能更为明显

相关推荐

    关于spring、struts、hibernate三大框架整合的疑惑!

    Spring、Struts和Hibernate是Java开发中非常经典的三大框架,它们各自在应用程序的不同层次上发挥作用,共同构建了一个完整的MVC(Model-View-Controller)架构。这篇文章将详细讲解这三个框架的核心概念、整合方式...

    struts2类型转换convertToString不被调用的疑惑

    Struts2是一个流行的Java web框架,它用于构建和管理MVC(模型-视图-控制器)应用程序。在处理用户输入时,Struts2提供了一种类型转换机制,以确保从HTTP请求参数到Action类属性的自动类型匹配。然而,有时开发者...

    MyEclipse生成的struts-2.3.30-all javadoc

    Struts 2是Java开发中一个非常流行的MVC框架,用于构建企业级Web应用程序。它在Struts 1的基础上进行了大量的改进和优化,提供了更强大的功能和更好的性能。本资源是一个名为"struts-2.3.30-all"的压缩包,其中包含...

    Struts tutorial(中文)

    Struts 是一个开源的 MVC(Model-View-Controller)框架,用于构建企业级的 Java Web 应用程序。本教程提供了逐步学习Struts架构的方法,适合有一定JSP和XML基础的开发者。通过一系列实验和讲解,帮助读者快速掌握...

    在线社区讨论平台采用JSP技术构建

    Struts是MVC(Model-View-Controller)设计模式的实现,它简化了Java Web应用的开发。Struts将业务逻辑、数据处理和页面显示分离,提供了一套标准的控制器组件和模型组件接口。在本项目中,Struts负责接收请求,调用...

    Java开发技术问题汇集

    例如,你可能会遇到Spring Bean的生命周期问题,Struts2的Action配置疑惑,Hibernate的查询优化挑战,或是JSP中的EL表达式问题。每个问题的解答通常会涉及详细的步骤、代码示例和最佳实践。 通过这个资源库,开发者...

    在线答疑系统

    Struts2则是一个基于MVC设计模式的Web应用框架,它继承了Struts1的优点,并且引入了更多现代Web开发的最佳实践。Struts2的动作调度、拦截器和结果映射等功能,使得开发者可以方便地定义用户交互流程。在在线答疑系统...

    android客户端与后台服务器交互

    2. **Struts后台**:Struts是Java EE平台上的一种MVC(模型-视图-控制器)框架,用于构建Web应用程序。在本示例中,Struts处理来自Android客户端的请求,执行业务逻辑,并将结果转换为JSON格式。Struts2框架提供...

    基于ssh网上答疑系统 java

    此外,Spring MVC模块可以与Struts2结合,共同处理Web请求。 **3. Hibernate框架** Hibernate是一个对象关系映射(ORM)工具,简化了Java应用与数据库之间的交互。它将Java对象转换为SQL语句,处理数据库的CRUD...

    页面列表实现假分页

    Struts2是一个基于MVC设计模式的Java Web应用程序框架,它简化了开发过程,提供了强大的控制层。Struts2通过拦截器和配置文件,使得业务逻辑和视图层分离,提高了代码的可维护性和可扩展性。 **二、Hibernate框架...

    CXF入门.rar

    Struts2是一个流行的MVC框架,用于处理用户请求和展示结果。在这样的架构中,CXF通常作为服务层,处理业务逻辑,Spring则作为整个应用的胶水层,负责组件的装配和依赖管理,而Struts2则负责用户界面的交互和控制流程...

    健身网站(完整的源码)

    这个【健身网站(完整的源码)】是学习Java Web开发、理解Struts2框架、实践MVC模式的好材料,同时也是了解健身网站功能设计和实现的实例。对于开发者来说,深入研究源码可以帮助提升技能,对于运营者,它可以作为...

    实验室管理系统

    1. Struts2:作为MVC(Model-View-Controller)架构的一部分,主要负责控制流程,它将用户的请求分发到相应的处理方法,处理完后返回相应的视图展示给用户。 2. Spring:作为应用框架,提供了依赖注入(DI)和面向...

    java学习心得4000字.doc

    - **Struts**:Struts是最流行的Web框架之一,学习Struts可以帮助理解MVC模式。 - **JSF**:尽管目前使用较少,但作为标准框架,其前景值得期待。 3. **Spring/EJB**: - **Spring**:作为轻量级的业务逻辑层...

    北大青鸟三单元项目

    "SSH_JOBA"这个名字暗示了项目可能涉及SSH(Struts + Spring + Hibernate)框架的使用。SSH是Java Web开发中常用的三大框架,它们分别处理MVC模式的视图、控制和持久层。通过学习和实践SSH框架,初学者可以学习到...

    jsp网站,大学生创业平台

    为了提高开发效率和代码质量,可以考虑使用MVC框架,如Struts或Spring MVC,以及ORM框架Hibernate,实现业务逻辑与视图的分离,简化数据库操作。 5. **功能模块** - **用户管理**:包括用户注册、登录、个人信息...

    java培训讲座(怎么学java)

    Struts和JSF框架的讲解帮助理解MVC设计模式在Web应用中的应用。EJB(Enterprise JavaBeans)和Spring框架的介绍,以及Web 2.0技术如Ajax,让学习者能够构建更高效、交互性更强的企业级应用。J2ME课程则涵盖了移动...

    appfuse_quick_start

    这个框架集成了多种流行的技术,如Spring、Hibernate、Struts或Spring Boot等,旨在简化开发过程,减少开发者在基础架构上花费的时间,从而可以更加专注于业务逻辑的实现。 AppFuse 提供了一种模板化的方法来创建新...

    grid++ report在线报表的使用笔记

    Grid++ Report可以无缝集成到各种Web框架中,如Struts、Spring MVC等。通过提供的API,开发者可以在程序中动态生成、导出和打印报表,增强应用的交互性和功能性。 6. **报表展示与交互** 生成的报表可以以HTML、...

    Java入门学习指导

    学习如Spring MVC、Struts等流行框架的使用方法,可以极大地简化Web应用的开发过程。 11. **学习ORM框架**:ORM(Object-Relational Mapping)框架如Hibernate,可以帮助开发者更加高效地处理数据库操作,减少手工...

Global site tag (gtag.js) - Google Analytics