Struts中的MVC
大家都知道,Struts是基于MVC模式的Web应用框架。Struts的优点之一就是将Web应用分成控制,模型和视图。模型中仅包含业务逻辑,视图中仅包含了显示逻辑。当我经过3次基于Struts开发web应用之后,对这一点有了一点感性的认识。
一、模型与视图的独立
所谓模型与视图的独立。实际上,就是要求我们在开发过程中,应该将模型组件和与视图有关的组件(一般是一些javabean)放在两个不同的包里。并且这两个包应该相互之间没有任何依赖关系。具体地讲就是这两个包相互都不能有导入。在视图组件这个包中除了包含javabean(通常用作DTO使用,将数据传向jsp),还应该包含一些键值的常量。因为DTO都是要存放在request范围里的,需要定义一些键值。由于这些键值是与视图密切相关的,所以不能够到处乱放,而是一定要放在视图组件包内。而模型组件包在开发过程中,你要完全抛开Struts和jsp,就当这些完全不存在,这样开发出来的模型组件即使将来换一个界面(例如:Swing)时,就可以很容易的重用。
二、控制的独立
首先,控制部分是由Struts软件提供的。Struts软件当然无法与你开发的视图和模型有依赖关系,因为Struts在开发的时候,你的模型和视图还没有开发出来呢。Strutst提供了Action这个父类,相当于提供了一个接口,所有具体的执行细节都由Action扩展类来实现。这样Struts框架将控制和控制的内容进行类分离,保证了控制与控制的内容(模型和视图)的独立性。 当然,你在开发模型和视图部分时也不要依赖控制部分,即,不要在你的软件包中导入org.apache.struts包及其子包中的类。只有这样才能真正保持MVC之间的独立性。
三、扩展Action类
前两点主要都在谈独立性。但是,一旦讲到扩展Action类,可以说所有的依赖关系都发生在这里。大家都知道,Action扩展类,负责调用模型和选择视图,那么当你在开发这些Action扩展类的时候,就需要导入模型组件包和视图组件包。也有是说Action依赖模型和视图。由于Action扩展类还有继承Action自类。Action类是控制的一部分,因为它位于org.apache.struts.action包中。所以Action扩展类还依赖控制组件。这样看来,Action扩展类仿佛是Struts这个框架中胶水,它依赖模型、视图和控制部分的组件,MVC这三个部分都是通过它来紧密联系在一起的。
四、总结
Struts框架强调MVC的独立,所以在开发时,视图组件、模型组件最好放在一个单独的包中,Action扩展类也放在一个单独的包里。Struts软件包、模型组件包和视图组件包应该相互隔离,彼此没有导入关系。而Action扩展类却依赖所有这三者。Action扩展类仿佛是胶水将MVC联系到了一起。
- 默认分类(20)
- J2EE(25)
- Java(56)
- PHP(55)
- SEO(10)
- 网页设计(20)
- 网站建设(37)
- 数据库(7)
- JavaScript(17)
- JQuery(6)
- MySQL(20)
- SQL Server(6)
- Access(1)
- Oracle(6)
- office(6)
- Dreamweaver(4)
- Photoshop(12)
- Flash(9)
- Fireworks(13)
- CSS(14)
- HTML(4)
- .NET(7)
- ASP(2)
- DB2(1)
- Ajax(2)
- Linux(12)
- Struts(7)
- Hibernate(8)
- Spring(2)
- Jsp(22)
- Asp(8)
- C#(3)
- C++(1)
- 网络安全(5)
- 软件工程(7)
- XML(1)
- English(2)
- 计算机等级考试(2)
- 计算机病毒(4)
- 个人日志(76)
- 互联网(15)
- ActionScript(10)
- Android(3)
- 数据结构与算法(1)
- 游戏策略(3)
- 美文翻译(2)
- 编程开发(19)
- 计算机应用(4)
- 计算机(10)
- Unity3d(6)
- 其他(1)
- egret(1)