一个软件有什么功能,它如何实现功能,这些功能之间的联系都是在模型层进行处理的。可以这样说,模型层是一个软件的核心,软件功能的好坏、软件功能是否完善,业务层起到了决定性的作用。
视图(View)层:就是用户能看到的并与之交互的界面。在J2EE技术中,常用的表示层技术主要由JSP、JSF、Freemarker等组成。视图向用户显示相关的数据,并能接受用户的输入数据,但是它不能进行任何实际的业务处理。视图还可以接受模型发出来的数据更新事件,从而对用户界面进行同步更新。
控制(Co
troller)层:Struts中的控制层和Servlet的功能功能一模一样,就是调用业务层,然后进行视图的切换。控制层几乎不做任何与业务有关的事情,比如登录验证这些。所以在软件的分层结构设计中,控制层的代码量几乎是最少的,但它的作用也是非常重要的。
通过将模型、视图与控制层的分离,各个层之间的联系非常少,但这样做的好处是,控制层可以随意的切换到自己想要展示的页面,然后控制层调用业务逻辑层和持久化保存数据层,来实现软件的功能,再转回到控制层,最后将最终的结果显示到视图层,这实际上是一种模型的变化传播机制。模型、视图、控制层三者之间的关系和各自的主要功能如图21所示。
状态查询通知改变
模型封装应用程序状态
响应状态查询应用程序功能通知视图改变
状态改变
视图解释模型模型更新请求发送用户输入给控制层允许控制器选择视图
视图选择用户请求
控制层定义应用程序行为用户动作映射成模型更新选择响应的视图
方法调用
事件
图21MVC组件关系和功能
224Struts框架
Struts已经提供了一个非常好的MVC框架,利用Struts开发MVC系统时可以大大加
11
f苏州大学本科生毕业设计(论文)
快开发速度。在开发时可以采用的开发流程如下。1收集和定义应用需求。2基于数据采集和显示的原则定义和开发用户界面的需求。3为每一个用户界面JSP文件定义访问路径。4定义Actio
Mappi
g建立应用业务逻辑之间的联系。5开发满足用户界面需求的所有支持对象。6基于每一个用户界面需求提供的数据属性来创建对应的Actio
Form对象。7开发被Actio
Mappi
g调用的Actio
对象。8开发应用业务逻辑对象(Bea
、EJB等)。9对应Actio
Mappi
g设计的流程创建JSP页面。10建立合适的配置文件strutsco
figxml、webxml。11开发测试部署。利用Sruts开发MVC流程,如图22所示。
View
Co
troller
Model
Struts
Actio
Servlet
②
strutsco
figxml
①③
Browsers
JSPHTML
Forr