"本文档详细介绍了Struts2框架的相关知识,包括其在Web应用中的部署、配置以及Action的使用。"
Struts2是一个流行的Java Web应用程序框架,它主要用于构建基于MVC(模型-视图-控制器)架构的Web应用。Struts2框架提供了一种组织和控制应用程序流程的方式,简化了开发过程并提高了代码的可维护性。
在部署Struts2到Web应用中,通常需要将struts2相关的JAR包放入WEB-INF/lib目录下。Struts2的核心配置文件是struts.xml,该文件定义了Action及其相关配置,例如Action的映射路径、结果页面等。在创建Web应用时,确保struts.xml位于类路径下,通常是src/main/resources或WEB-INF/classes目录下。
配置Struts2框架主要涉及web.xml文件。有两个常见的Struts2过滤器配置方式,分别对应Struts2的2.0版本和2.0之后的版本。对于2.0版本,使用的过滤器类是`org.apache.struts2.dispatcher.FilterDispatcher`,而在2.0之后的版本中,推荐使用`org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter`。这两个过滤器都会匹配所有URL模式(/*),从而确保所有的HTTP请求都能被Struts2处理。
在Struts2中,Action是核心组件,它实现了业务逻辑,并与视图和模型进行交互。与传统的Servlet不同,Struts2的Action不需要继承特定的Servlet类,而是通过实现Struts2提供的接口(如ActionSupport)或自定义业务接口来定义Action。Action类通常包含一个或多个方法,每个方法对应一个用户操作的结果。默认情况下,如果未指定方法,Struts2会调用名为execute的方法。
为了将Action映射到URL,我们需要在struts.xml中定义Action配置。Action配置包括Action名称、类名、可能的方法以及对应的Result(视图)。例如,一个简单的Action配置可能如下:
```xml
<action name="myAction" class="com.example.MyAction">
<result name="success">/success.jsp</result>
<result name="error">/error.jsp</result>
</action>
```
这个配置表示当用户访问以"myAction"开头的URL时,Struts2会调用MyAction类的execute方法,根据方法返回的结果字符串(如"success"或"error")决定跳转到相应的JSP页面。
总结起来,Struts2框架通过过滤器拦截请求,将请求分发到相应的Action,Action执行业务逻辑后返回结果,最后框架根据结果决定展示哪个视图。这种设计使得开发者可以专注于业务逻辑,而无需关心请求和响应的细节,提高了开发效率。