简介
这篇文章的目的是给struts用户介绍struts的好处,同时解释其配置和用法。我们会对一个健壮的表现层框架下一个定义,同时讨论struts框架如何实现这些要求。我们也探究struts中的设计模式的实现,控制器的语义,相关辅助组件的语义;当你需要设计组件和struts框架交互或者为了适应项目的特殊需要扩展struts框架时这些知识将会非常有用。本文介绍的信息可以在http://jakarta.apache.org/struts获得。
MVC架构

mvc架构把一个应用分离为3部分:模型,视图,控制器。它通常应用于图形交互用户模型的输入,处理,输入。
模型:一个模型表示应用程序中需要逻辑处理和操作的数据。在应用程序中任何有稳定状态的数据都应该放到模型对象中。提供模型的服务必须支持多个客户端。粗略看看模型的公共方法列表,就应该很容易明白怎么控制模型的行为。模型组织相关的数据和操作并提供特定的服务;这些操作的组合包装和抽象了业务逻辑。模型接口公布了处理模型状态的方法和封装到模型中的复杂业务逻辑的方法。模型服务通过控制器处理模型状态的查询或更改。当模型状态变化时,由模型通知视图。
视图:视图表现模型的状态。表示层语义被封装在视图中,因此同样的模型数据可以适合多个不同类型的客户端。当模型变化并通知视图后,由视图更新自身。视图传递用户输入到控制器。
控制器:控制器获取和转换用户输入到模型的action中。模型基于用户输入返回处理结果给控制器,由控制器选择适当的视图显示。
在基于J2EE的应用程序中,MVC架构通过JavaBeans或EJB处理业务逻辑,并同表示层JSP分离,中间通过基于控制器的servlet联系。然而,控制器的设计必须适应不同类型的客户端,包括web客户端的HTTP请求,无线客户端的WML,供应商和业务伙伴的基于XML的文档。拿HTTP请求/相应为例,输入的HTTP请求被路由到中央控制器,由中央控制器解释和委托请求到合适的请求处理器。这个也涉及到MVC2架构。框架的请求处理器提供开发人员实现具体的业务逻辑和模型交互。依赖交互的结果,控制器可以决定下一个视图并产生一个正确的相应。