一个Struts 2框架的基本设计目标是把MVC(模型 - 视图 - 控制器)设计模式到Web应用程序的开发。 MVC模式使关注点分离,并且允许易于维护的干净松散耦合的代码。 MVC模式由3个不同的部分组成。模型,视图和控制器。让我们看看这三个元素是如何在Struts 2中实现的。 控制器(StrutsPrepareAndExecuteFilter) - 控制器是处理各种请求协调的组件。在Web应用程序中,不同的用户请求需要由不同的应用程序组件提供,并由Controller组件进行此决定。在Struts 2中,对Web应用程序的每个请求都首先到达前端控制器类 - StrutsPrepareAndExecuteFilter。这将检查传入的请求,然后将请求路由到配置为处理请求的相应类(在Struts中称为Action类)。
模型(动作) - 模型是负责执行应用程序业务功能的组件。它是应用程序的核心。它代表应用程序的状态,并包含业务逻辑和业务数据。在Struts 2中,动作类充当应用程序模型的入口。这些类负责处理每个用户请求,然后将业务逻辑委托给由应用程序开发人员编写的其他类。 针对不同的用户请求拥有不同的操作类别,可确保我们拥有干净的代码,可以轻松维护。但是,不同的用户请求(如应用程序日志记录)所需的功能呢?对于这样的横切问题,Struts 2有一个称为拦截器的不同组件。
查看(结果) - 在MVC架构中查看是负责演示(用户界面)的组件。 View组件使用Model组件来获取数据并显示它。 Struts 2支持多种技术,例如JSP,Velocity模板,FreeMarker,用于View组件的XSLT。在Struts 2术语中,View被视为结果。动作类(Model)确定应该向用户呈现什么Result(View)。
用户通过访问浏览器中的应用程序URL来访问Struts 2应用程序的功能。请求总是来自StrutsPrepareAndExecuteFilter控制器(因为它是在所有Struts 2应用程序的web.xml中配置的)。 StrutsPrepareAndExecuteFilter查找Action类以在struts.xml文件中调用。或者,它可以使用惯例来猜测它。然后调用Action类的execute()方法,然后调用业务逻辑类。 动作类可以指定要使用注释显示的视图,也可以在struts.xml文件中指定它。无论哪种方式,Struts 2都知道要调用哪个View(Result)来显示数据给用户。这里需要注意的另一件重要事情是,Action类中的对象可用于View组件。因此,操作不仅决定显示哪个视图(结果),而且还提供视图所需的数据。
valueStack(它是objectStack和contextMap的组合)OGNL用于存储动作和其他对象。您可以使用OGNL来访问对象堆栈和上下文映射。
OGNL
绑定元件到模态的目的和从一种类型转换值与模态对象另一个 绑定通用代码。 动态创建列表和地图,与GUI方法一起使用 调用方法。你可以调用任何方法,而不仅仅是getter和setter。
下来选民请让我知道这里有什么问题,以便我可以做出适当的修改。 – 2012-08-15 00:03:15
我假设,因为(一)它不回答这个问题,(二)需要很多的话才不回答。然而,一年之后,我终于明白了这个问题,因为我随即获得了一个赞成票。 – 2013-11-09 12:44:02