"这篇文档主要介绍了Struts框架的基础开发,特别是Struts2的使用,包括所需jar包的获取、Struts2的启动配置以及配置文件的结构。"
在开发Struts2应用程序时,首先需要理解Struts框架的核心概念。Struts2是一个基于MVC(模型-视图-控制器)设计模式的Java Web框架,它提供了管理和组织Web应用程序的强大功能。Struts2是在XWork的基础上构建的,利用了OGNL(对象图导航语言)作为其表达式语言,并且支持使用FreeMarker模板来设计用户界面。
1. 开发Struts2依赖的jar包
开发Struts2应用时,需要从Apache官方网站下载struts-2.x.x-all.zip,其中包含了必要的jar文件。最基本的依赖包包括:
- `struts2-core-2.x.x.jar`: 这是Struts2框架的核心库,包含了处理请求、拦截器、结果类型等核心组件。
- `xwork-2.x.x.jar`: XWork库是Struts2的基础,提供动作执行、类型转换和验证等功能。
- `ognl-2.6.x.jar`: OGNL用于在Action对象和视图之间传递数据,是一种强大的表达式语言。
- `freemarker-2.3.x.jar`: FreeMarker是一个模板引擎,用于生成动态Web内容,常被Struts2用于生成视图部分。
- `commons-logging-1.1.x.jar`: 这是一个日志抽象层,允许选择底层的日志实现,如Log4J或JDK内置的日志。
2. Struts2的启动配置
与Struts1.x不同,Struts2不是通过Servlet而是通过Filter启动的。在`web.xml`中,需要配置`FilterDispatcher`过滤器,如下所示:
```xml
<filter>
<filter-name>struts2</filter-name>
<filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class>
</filter>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
```
当`FilterDispatcher`启动时,会读取类路径下的默认配置文件`struts.xml`,进行初始化。
3. Struts2的配置文件
默认的配置文件`struts.xml`位于`WEB-INF/classes`目录下,定义了Action、拦截器、结果类型等元素。配置文件的基本结构如下:
```xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
"http://struts.apache.org/dtds/struts-2.0.dtd">
<struts>
<!-- 配置Action -->
<package name="default" namespace="/" extends="struts-default">
<action name="exampleAction" class="com.example.ExampleAction">
<result name="success">/success.jsp</result>
</action>
</package>
</struts>
```
在上述配置中,定义了一个名为`exampleAction`的动作,当用户访问匹配的URL时,将调用`com.example.ExampleAction`类的execute方法,成功后跳转到`success.jsp`页面。
通过这些基本设置,开发者可以开始构建基于Struts2的Web应用程序。Struts2的配置灵活性很高,可以自定义拦截器、结果类型,以及通过扩展点进行更复杂的定制,从而满足各种复杂的需求。在实际开发中,还需要了解如何创建Action、ActionForm(在Struts1中,但在Struts2中通常由POJO代替)、结果视图、以及如何使用Struts2提供的注解进行简化配置。此外,Struts2还支持整合Spring、Hibernate等其他框架,以实现更全面的企业级应用。