### Struts2配置详解 #### 一、Struts2简介 Struts2是Apache软件基金会的一个开源项目,它是一个基于MVC(Model-View-Controller)设计模式的Web应用程序框架,用于开发Java EE平台上的动态网站。Struts2提供了一个结构清晰、易于扩展的框架,使得开发者能够更方便地构建和维护复杂的应用程序。 #### 二、Struts2的基本配置 在Struts2的开发过程中,正确的配置是非常关键的一步。下面将详细介绍Struts2的基本配置及其组成部分。 ##### 1. web.xml配置 `web.xml`是Web应用的部署描述符文件,它定义了Web应用的基本配置信息,包括Servlet的配置、过滤器的配置等。在Struts2中,需要配置两个主要的过滤器:StrutsPrepareAndExecuteFilter和Struts2的默认配置。 - **StrutsPrepareAndExecuteFilter**:这是Struts2的核心过滤器,负责拦截所有进入应用程序的请求,并处理这些请求。 ```xml <filter> <filter-name>struts2</filter-name> <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class> </filter> <filter-mapping> <filter-name>struts2</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> ``` - **默认配置**:Struts2框架的一些默认配置也需要在`web.xml`中进行设置,比如编码过滤器等。 ```xml <filter> <filter-name>encodingFilter</filter-name> <filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class> <init-param> <param-name>struts.i18n.encoding</param-name> <param-value>UTF-8</param-value> </init-param> </filter> <filter-mapping> <filter-name>encodingFilter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> ``` ##### 2. struts.xml配置 `struts.xml`是Struts2的核心配置文件,主要用于配置Action、拦截器、结果类型等。 - **Action配置**:在`struts.xml`中通过`<package>`元素来组织不同的模块,每个模块中可以包含多个`<action>`元素。 ```xml <package name="default" namespace="/" extends="struts-default"> <action name="helloWorld" class="com.example.HelloWorldAction"> <result name="success">/WEB-INF/content/helloworld.jsp</result> </action> </package> ``` - **拦截器配置**:拦截器是Struts2中的一个重要组件,它可以在Action执行前后执行一些操作,如参数校验、事务管理等。 ```xml <interceptors> <interceptor name="myInterceptor" class="com.example.MyInterceptor"></interceptor> <interceptor-stack name="customStack"> <interceptor-ref name="myInterceptor"></interceptor-ref> </interceptor-stack> </interceptors> <default-interceptor-ref name="customStack"/> ``` - **结果类型配置**:结果类型用于指定Action执行后返回的结果类型。 ```xml <result-types> <result-type name="tiles" class="org.apache.struts2.views.tiles.TilesResult"/> </result-types> ``` #### 三、Struts2连接数据库并进行增删改查操作 Struts2框架本身并不直接支持数据库操作,但可以很容易地与各种持久层技术(如Hibernate、MyBatis等)集成,从而实现数据访问功能。 ##### 1. 数据库配置 通常,我们会使用一个ORM框架(如Hibernate或MyBatis)来进行数据库操作。首先需要在项目的`pom.xml`文件中添加相应的依赖,然后配置数据源信息。 - **使用MyBatis**: - 在`pom.xml`中添加MyBatis相关依赖。 ```xml <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis</artifactId> <version>3.5.7</version> </dependency> ``` - 配置数据源信息(例如在`mybatis-config.xml`文件中)。 ```xml <configuration> <environments default="development"> <environment id="development"> <transactionManager type="JDBC"/> <dataSource type="POOLED"> <property name="driver" value="com.mysql.jdbc.Driver"/> <property name="url" value="jdbc:mysql://localhost:3306/mydb"/> <property name="username" value="root"/> <property name="password" value="password"/> </dataSource> </environment> </environments> </configuration> ``` ##### 2. 实现增删改查操作 - **创建Action类**:为了实现增删改查功能,需要创建对应的Action类,并在其中定义相应的业务逻辑方法。 ```java public class UserAction implements Action { private UserService userService; // 设置userService public void setUserService(UserService userService) { this.userService = userService; } public String add() { userService.addUser(new User("张三", "123456")); return SUCCESS; } public String delete() { userService.deleteUser(1); return SUCCESS; } public String update() { User user = new User(2, "李四", "654321"); userService.updateUser(user); return SUCCESS; } public String query() { List<User> users = userService.queryUsers(); // 将查询结果保存到值栈中 ActionContext.getContext().getValueStack().push(users); return SUCCESS; } } ``` - **配置Action和视图**:在`struts.xml`中配置上述Action类,并指定视图返回路径。 ```xml <package name="default" namespace="/" extends="struts-default"> <action name="user_*" class="com.example.UserAction" method="{1}"> <result name="success">/WEB-INF/content/userList.jsp</result> </action> </package> ``` #### 四、总结 本文详细介绍了Struts2的基本配置方法,包括`web.xml`和`struts.xml`的配置细节,以及如何利用Struts2框架进行数据库的增删改查操作。通过以上内容的学习,开发者可以更好地理解和掌握Struts2框架的使用方法,从而高效地开发出高质量的Web应用。
- 粉丝: 0
- 资源: 1
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助