Struts2详解:配置struts.xml与核心概念解析
需积分: 0 128 浏览量
更新于2024-08-18
收藏 2.39MB PPT 举报
"本文将深入讲解Struts2框架,特别是如何修改struts.xml配置文件,以及Struts2的基础知识,包括框架概述、配置文件、国际化、输入校验等关键概念。"
Struts2是一个强大的MVC(Model-View-Controller)框架,由Apache软件基金会维护,旨在简化Web应用程序的开发。其前身Struts1由Craig R. McClanahan创建,并于2001年发布1.0版本。Struts2在2005年推出,提供了更多功能,如页面导航管理、输入验证、统一布局、可扩展性、国际化、Ajax支持以及防止表单重复提交等。
要开始使用Struts2,首先需要从官方站点下载最新版本(例如2.3.1.2)。下载的struts-2.x.x-all.zip文件包含所有必要的库文件,其中lib目录下的jar文件是开发Struts2应用所必需的。核心库包括struts2-core-2.x.x.jar,它是框架的核心组件;xwork-2.x.x.jar提供基础架构;ognl-2.x.x.jar是对象图导航语言,用于表达式处理;freemarker-2.3.x.jar支持FreeMarker模板,用于生成动态UI;以及commons-logging-1.1.x.jar,作为日志接口,允许与Log4J或JDK1.4+的日志系统集成。此外,为了实现文件上传,需要commons-fileupload.jar。
配置文件是Struts2的核心部分,比如struts.xml文件。在提供的描述中,我们看到了一个简单的配置示例:
```xml
<package name="self" namespace="/" extends="struts-default">
<action name="hello" class="cn.edu.huanghuai.xxgcxy.struts2.action.firstAction">
<result name="success">
/first.jsp
</result>
</action>
</package>
```
这个配置定义了一个名为"self"的包,namespace属性设置为空字符串,意味着这是全局命名空间。action元素定义了一个名为"hello"的动作,关联了类cn.edu.huanghuai.xxgcxy.struts2.action.firstAction。当这个动作成功执行时,将会跳转到/first.jsp页面。
Struts2的基础内容还包括以下方面:
1. **Struts2概述**:了解Struts2的基本概念、架构和设计原则。
2. **简单的Struts2程序**:从创建第一个“Hello, World”程序开始,理解Struts2的工作流程。
3. **Struts2配置文件**:学习如何配置struts.xml,包括动作、结果、拦截器和包的设置。
4. **Struts2国际化**:通过资源bundle实现多语言支持。
5. **Struts2输入校验**:利用注解或XML配置进行表单数据的验证。
6. **Struts2 OGNL**:学习如何使用OGNL表达式语言在视图和控制器之间传递数据。
7. **Struts2拦截器**:理解并创建自定义拦截器,增强框架的功能。
8. **Struts2类型转换**:自动或自定义类型转换,确保数据类型的一致性。
9. **Struts2标签库**:利用内置的标签简化JSP页面的编写。
10. **访问数据库**:结合DAO模式或ORM框架(如Hibernate)实现数据库操作。
在实际开发中,可能还需要与其他框架集成,如Spring,这时需要额外引入对应的-struts2-plugin.jar文件。Struts2提供了一套全面的工具集,帮助开发者构建健壮、可维护的Web应用程序。
386 浏览量
331 浏览量
2013-12-05 上传
2022-10-30 上传
159 浏览量
2019-04-17 上传
2008-10-14 上传
辰可爱啊
- 粉丝: 18
- 资源: 2万+
最新资源
- Matrix:开发用于使用pygame学习矩阵的教具
- Termy:具有自动完成功能的终端
- Catfish BLOG 鲶鱼博客系统 v2.0.51
- em算法matlab代码-Digital-Device-Design-for-Power-Factor-Calculation:功率因数(PF
- OSEMR-开源
- adb驱动亲测可用解压即可
- GitHub-Health-Project-Article:关于我对免费和开源,非限制性,道德和安全的医疗健康项目的计划和贡献的文章
- disaster_response_NLP_pipeline:用于灾难响应消息分类的NLP管道
- benchdb-accumulation-register:ouchdb的累积寄存器
- keil3/4 采用单片机或ARM控制路灯四季不同天黑时间的路灯开关控制,且能根据节假日单独设置开关时间。
- matlab标注字体代码-figexp:将Matlab图形导出为各种格式
- 西门子ET_200S +6 ES7_131_4BB00外形图.zip
- RxBasicsKata:RxJava学习者的实际挑战
- postgres_dba:缺少用于Postgres DBA和所有工程师的有用工具集
- NetEpi-开源
- typescript-express-static-analysis-template