Struts2核心配置:struts.xml详解
需积分: 0 140 浏览量
更新于2024-09-29
收藏 39KB DOC 举报
"struts.xml是Struts2框架中的核心配置文件,它定义了Action的执行逻辑、结果映射以及Action与视图之间的交互。在本文档中,我们将深入探讨struts.xml文件的结构、组成部分以及如何通过XML配置来管理Action的行为。
首先,struts.xml文件的结构通常包含以下部分:
1. XML声明和文档类型定义:
- XML版本声明指定XML文件的规范版本(如`<?xml version="1.0" encoding="UTF-8"?>`)。
- 文档类型声明(DOCTYPE)指定了所使用的Struts2配置文件的DTD(文档类型定义),如`<!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN" "http://struts.apache.org/dtds/struts-2.0.dtd">`,这确保了XML文件符合Struts2框架的规范。
2. `<struts>`根元素:
- 开始标记`<struts>`表示这是一个Struts2的配置文件,其中包含了多个包装器(package)。
3. 定义包装器(package):
- `<packagename="example"namespace="/example"extends="struts-default">`:每个包装器都有自己的名字(例如`example`)、命名空间(`namespace`,用于区分不同应用或模块下的Action)以及可能继承的默认配置(如`struts-default`)。
4. 定义Action:
- `<action>`元素用于定义具体的Action。例如:
- `<action name="HelloWorld" class="example.HelloWorld">`:定义了一个名为`HelloWorld`的Action,其实现类为`example.HelloWorld`。
- `<result>`标签用于指定Action执行完成后将跳转到哪个视图,如`<result>/example/HelloWorld.jsp</result>`,表示当HelloWorld Action执行完毕后,页面将显示`example/HelloWorld.jsp`。
5. 结构灵活性:
- 动作方法的匹配规则可以通过`<actionname="Login_*" method="{1}" class="example.Login">`实现,这里的`*`代表通配符,`method="{1}"`意味着方法名由URL路径中的下一个部分决定,如`/example/Login_success`会调用`Login_success`方法。
6. 结果类型:
- 结果可以是视图页面、重定向或者其他的Action。如`<resultname="input">/example/Login.jsp</result>`定义了当用户输入错误时返回`Login.jsp`,而`<resulttype="redirect-action">Menu</result>`则表示在Login Action完成后,将用户重定向到`Menu` Action。
7. 具有通用行为的Action:
- `<action name="*" class="example.ExampleSupport">`定义了一个通配符Action,当所有其他Action没有匹配到特定的请求时,将执行`ExampleSupport`类的方法,并根据`{1}`等占位符动态确定结果路径。
总结来说,struts.xml文件是Struts2框架的核心配置文件,通过细致地配置各个Action、结果和命名空间,开发者能够灵活地控制Web应用的业务流程和用户体验。理解并熟练掌握struts.xml的结构和配置方式,对于构建高效、可维护的Struts2应用至关重要。
2010-11-15 上传
2011-03-11 上传
点击了解资源详情
2012-05-08 上传
2011-07-17 上传
2008-07-17 上传
2009-08-06 上传
2012-05-08 上传
2009-05-12 上传
放弃很容易,但坚持更可贵
- 粉丝: 28
- 资源: 74
最新资源
- 平尾装配工作平台运输支撑系统设计与应用
- MAX-MIN Ant System:用MATLAB解决旅行商问题
- Flutter状态管理新秀:sealed_flutter_bloc包整合seal_unions
- Pong²开源游戏:双人对战图形化的经典竞技体验
- jQuery spriteAnimator插件:创建精灵动画的利器
- 广播媒体对象传输方法与设备的技术分析
- MATLAB HDF5数据提取工具:深层结构化数据处理
- 适用于arm64的Valgrind交叉编译包发布
- 基于canvas和Java后端的小程序“飞翔的小鸟”完整示例
- 全面升级STM32F7 Discovery LCD BSP驱动程序
- React Router v4 入门教程与示例代码解析
- 下载OpenCV各版本安装包,全面覆盖2.4至4.5
- 手写笔画分割技术的新突破:智能分割方法与装置
- 基于Koplowitz & Bruckstein算法的MATLAB周长估计方法
- Modbus4j-3.0.3版本免费下载指南
- PoqetPresenter:Sharp Zaurus上的开源OpenOffice演示查看器