Struts2核心配置:struts.xml详解
需积分: 0 25 浏览量
更新于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 上传
2012-05-08 上传
2009-08-06 上传
2009-05-12 上传
放弃很容易,但坚持更可贵
- 粉丝: 28
- 资源: 74
最新资源
- GoogleMaterialDesignIcons(iPhone源代码)
- 电信设备-基于邻域信息和平均差异度的Kmeans初始聚类中心优选方法.zip
- i-player:vuejs + vuetify ui编写的一套在线音乐播放器,接口来自第三方netease-cloud-music api
- MVCInputMask:使用 ASP.NET MVC 和服务器端属性动态屏蔽输入的测试项目
- 战舰
- MoodCatcher:通过丰富多彩的可视化显示您的情感和情感分析的日记
- superdesk:Superdesk是一个端到端的新闻创建,制作,策展,分发和发布平台
- Android 搜索内容保存历史记录
- netology-java-2.6-1
- 学习兴趣+数学游戏+数学建模+计算机学生学习动力
- 易语言-考试倒计时
- Python_RT:该程序利用Python的可变列表数据类型作为基础,在编译时通过光线跟踪渲染图像文件
- Vyrtex Quick Add-crx插件
- SpeechCast:由Yoshi先生创建的SpeechCast的略微附加版本
- TinEye-Java-API:TinEye Java API使用公钥和私钥对按图像URL搜索
- whereareyou:你在哪!?