Struts2入门教程:配置与类型转换解析
需积分: 10 165 浏览量
更新于2024-07-31
收藏 1.89MB DOC 举报
Struts2是一个强大的MVC框架,它在Java Web开发中被广泛应用。该框架的主要目标是简化应用程序的构建,提供一种组织代码和控制流程的方式。在Struts2的学习文档中,我们可以深入理解其核心概念和配置。
一、Struts2入门与配置
1. **依赖包**:在开始Struts2项目时,需要将必要的jar包添加到项目的lib目录下,如`commons-logging-1.0.4.jar`、`freemarker-2.3.8.jar`、`ognl-2.6.11.jar`、`struts2-core-2.0.11.jar`和`xwork-2.0.4.jar`。这些库文件是Struts2运行的基础。
2. **Web.xml配置**:在`web.xml`文件中,使用过滤器方式配置Struts2,通过指定`filter-class`为`org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter`来启用框架。
3. **Struts.xml配置**:这是Struts2的核心配置文件,通常放在`src`目录下,用于定义Action、结果和拦截器等。`<action>`标签定义了Action的名称和处理类,`<result>`标签则定义了请求成功后的转向页面。`<package>`用于组织Action,可继承其他包以重用配置。
二、Action类与Execute方法
1. **Action类**:每个业务逻辑通常对应一个Action类,比如`LoginAction`,它有一个`execute`方法,这是Struts2默认调用的方法。客户端提交的数据会通过setter方法自动注入到Action的属性中。
2. **数据校验**:为了进行数据验证,Action类通常会继承`ActionSupport`,并重写`validate`方法。当验证失败时,框架会自动跳转到`input`指定的页面。
三、命名空间与Action访问
Struts2使用命名空间(namespace)来管理Action,避免Action名称冲突。如果命名空间非默认,访问Action时需在URL中加上命名空间路径。
四、JSP页面与Struts2标签
1. **Struts2标签库**:在JSP页面中,使用Struts2标签可以简化代码,例如`<s:textfield>`、`<s:submit>`等。这些标签具有自动回填数据的功能,并且默认以`.action`结尾。
2. **EL表达式**:由于Struts2使用请求转发,所以在页面上可以直接使用EL表达式获取Action中的属性值。
五、类型转换
Struts2提供自动类型转换机制,当客户端提交的数据需要转换为特定类型时,Struts2会检查属性是否有对应的转换器。开发者也可以自定义转换器,通过在`struts.xml`中配置`ConversionProperties`来指定。
六、Struts2拦截器
拦截器是Struts2的一个重要特性,它允许在Action执行前后插入自定义逻辑。默认配置的`struts-default`包已经包含了多个拦截器,如`params`(处理请求参数)、`validation`(执行数据验证)等。
七、结果类型
Struts2支持多种结果类型,如`dispatcher`(默认,用于转发到JSP页面)、`redirect`(重定向)等。开发者可以根据需求在`<result>`标签中指定。
Struts2提供了一套完整的MVC架构,通过配置文件、Action、拦截器、类型转换等机制,使得Java Web开发更加规范和高效。通过深入学习和实践,开发者能够更好地理解和应用这个框架。
2008-04-22 上传
2013-09-13 上传
2023-05-19 上传
2023-10-15 上传
2023-09-02 上传
2023-06-06 上传
2023-08-01 上传
2023-09-06 上传
2023-05-19 上传
![](https://profile-avatar.csdnimg.cn/default.jpg!1)
showkey_
- 粉丝: 0
- 资源: 3
最新资源
- Hadoop生态系统与MapReduce详解
- MDS系列三相整流桥模块技术规格与特性
- MFC编程:指针与句柄获取全面解析
- LM06:多模4G高速数据模块,支持GSM至TD-LTE
- 使用Gradle与Nexus构建私有仓库
- JAVA编程规范指南:命名规则与文件样式
- EMC VNX5500 存储系统日常维护指南
- 大数据驱动的互联网用户体验深度管理策略
- 改进型Booth算法:32位浮点阵列乘法器的高速设计与算法比较
- H3CNE网络认证重点知识整理
- Linux环境下MongoDB的详细安装教程
- 压缩文法的等价变换与多余规则删除
- BRMS入门指南:JBOSS安装与基础操作详解
- Win7环境下Android开发环境配置全攻略
- SHT10 C语言程序与LCD1602显示实例及精度校准
- 反垃圾邮件技术:现状与前景