Struts2是一个流行的Java Web应用程序框架,用于构建MVC(模型-视图-控制器)架构的应用。它简化了开发过程,提供了丰富的功能和强大的插件支持。以下是对Struts2的详细总结:
1. **环境配置**:
- **核心JAR包**:在创建Struts2项目时,需要引入一系列的JAR包,包括Struts2的核心库和其他依赖库,如OGNL、Freemarker等。这些JAR包是工程运行的基础,不可或缺。
2. **Web.xml配置**:
- **过滤器定义**:在`web.xml`中,我们需要定义一个名为`struts2`的过滤器,该过滤器的类为`org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter`,它负责初始化Struts2框架并处理所有的HTTP请求。
- **过滤器映射**:接着,通过`<filter-mapping>`元素将`struts2`过滤器与所有URL(`/*`)关联,确保所有请求都会经过Struts2处理。
3. **struts.xml配置**:
- **配置文件**:在项目的`src`目录下创建`struts.xml`文件,它是Struts2的配置中心,用于定义Action、结果类型、包继承关系等。
- **包定义**:`<package>`元素用于组织Action,`name`属性定义包名,`extends`属性通常设置为`struts-default`,以继承Struts2的默认配置。
- **Action定义**:在包内,`<action>`元素定义了一个操作,`name`属性表示请求路径,`class`属性指向对应的Action类。
4. **Action类**:
- **Action类**:Action类是业务逻辑的载体,比如示例中的`LoginAction`,通常包含处理用户请求的方法,如`execute()`方法,返回的结果类型(如`"success"`)对应视图的跳转。
5. **DTD验证问题**:
- **DTD引用**:在`struts.xml`中,DTD(文档类型定义)用于验证配置文件的语法,但有时可能会遇到网络问题导致无法访问。为解决此问题,可以下载所需的DTD文件到本地,并在MyEclipse的XML Catalog设置中指定本地路径,从而离线验证配置文件。
6. **错误处理**:
- 如果在开发过程中遇到问题,如上述的DTD无法验证,需要进行适当的故障排除,如检查网络连接,重新下载或配置DTD路径,确保IDE能够正确解析和验证配置文件。
7. **运行流程**:
- 用户发送HTTP请求到服务器,请求被`struts2`过滤器拦截。
- 过滤器根据`struts.xml`配置解析请求,找到对应的Action执行。
- Action执行后返回一个结果字符串,这个字符串根据Struts2的配置决定如何跳转视图,如JSP页面。
- 视图被渲染并返回给客户端显示。
以上就是Struts2框架的基本概念和配置流程,实际开发中还会涉及更多细节,如国际化、拦截器、结果类型、动态方法调用、自定义拦截器、插件使用等。理解并熟练掌握这些知识点,将有助于构建高效、可维护的Struts2应用。