新用户注册入口 老用户登录入口

Struts2 XML配置文件struts.xml详解:结构、Action定义与结果处理,包含全局常量、包配置及URL匹配示例

文章作者:月影清风-t 更新时间:2023-11-11 14:08:13 阅读数量:95
文章标签:Struts2XML配置文件结构ActionURL匹配EL表达式
本文摘要:本文详细解析了Java企业级开发框架Struts2的核心XML配置文件struts.xml,阐述了其基本结构,包括声明类型、根元素`<struts>`、全局常量`<constant>`、应用包`<package>`、Action定义`<action>`以及结果映射`<result>`等关键部分。通过实战演练,文章展示了如何在struts.xml中配置Action属性、使用不同结果类型(如redirect)实现页面跳转,以及利用通配符匹配URL并结合EL表达式动态获取参数。此篇旨在帮助开发者深入理解并有效运用Struts2 XML配置文件进行功能设定与逻辑控制。
Struts2

一、引言

Struts2作为Java企业级开发框架,其强大的功能及灵活性备受开发者喜爱。而在这整个过程中,配置文件可是扮演了超级重要的角色,它们就像指挥官一样,实实在在地决定了应用运行时的一举一动,从头到尾的逻辑走向都离不开它们的掌控。今天呢,咱们就来好好唠一唠Struts2的大心脏——struts.xml配置文件,还有它最基本的模样结构是咋样的。

二、struts.xml的基本结构

首先,我们来看一下struts.xml的基本结构:
<!DOCTYPE struts PUBLIC
        "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
        "http://struts.apache.org/dtds/struts-2.3.dtd">
<struts>
    <constant name="struts.devMode" value="false"/>
    <package name="default" namespace="/" extends="struts-default">
        <action name="index" class="com.example.IndexAction" method="execute">
            <result>/WEB-INF/views/index.jsp</result>
        </action>
    </package>
</struts>

1. `<!DOCTYPE struts>`

这个标签用来声明struts.xml的类型为Struts配置文件。

2. `<struts>`

这是整个struts.xml的根元素,它包含了所有的配置信息。

3. `<constant>`

这个标签用于设置Struts2的一些全局常量,如devMode(开发模式)等。

4. `<package>`

这个标签定义了一个Struts2的应用包,它是Struts2的最小可部署单元,一个应用通常由多个包组成。

5. `<action>`

这个标签定义了一个具体的Action,它对应于一个URL请求。

6. `<result>`

这个标签定义了一个结果,它指定了当Action执行完成后返回的结果页面。
以上就是struts.xml的基本结构,下面我们通过一些实际的例子来进一步理解和学习。

三、实战演练

现在我们来看几个具体的例子,加深对struts.xml的理解。
案例一:如何配置Action的属性
<bean id="myAction" class="com.example.MyAction" scope="prototype">
    <property name="myProperty" value="myValue"/>
</bean>
<action name="myAction" class="com.example.MyAction" method="execute">
    <result>/WEB-INF/views/myResult.jsp</result>
</action>
在这个例子中,我们定义了一个名为myAction的Action,并将其类设置为MyAction。同时,我们在Action中定义了一个名为myProperty的属性,并赋值为myValue。这样,当我们通过url访问myAction时,myAction会自动获取到这个属性。
案例二:如何使用结果类型
<action name="myAction" class="com.example.MyAction" method="execute">
    <result type="redirect">/WEB-INF/views/myResult.jsp</result>
</action>
在这个例子中,我们将结果类型设置为redirect,这意味着当Action执行完成后,将直接跳转到指定的路径(/WEB-INF/views/myResult.jsp)。这跟result标签的用法不太一样,你知道吧,那个result标签啊,它可勤快了,直接就把结果内容给亮出来给你看,完全不跟你玩跳转到新页面的那套。
案例三:如何使用通配符匹配URL
<package name="default" namespace="/" extends="struts-default">
    <action name="*.do" class="com.example.MyAction" method="execute">
        <result>/WEB-INF/views/${1}.jsp</result>
    </action>
</package>
在这个例子中,我们使用了通配符*来匹配URL,只要URL的后缀名是.do,就会被这个Action处理。同时,我们在Action里耍了个小聪明,用了EL表达式${1}这个小玩意儿,它可以灵活地从URL中抓取动态变化的参数。例如,如果URL为/home.do,那么${1}就会被替换为home,从而在视图中显示正确的数据。
总结
本文介绍了Str
相关阅读
文章标题:Struts2框架中模板加载失败问题:路径配置错误、初始化异常与文件编码不一致解析及视图渲染影响

更新时间:2024-03-07
Struts2框架中模板加载失败问题:路径配置错误、初始化异常与文件编码不一致解析及视图渲染影响
文章标题:Struts2中'Requested resource /resourcePath is not available'异常:排查Action配置与结果路径问题,解析DispatcherServlet处理流程及资源部署要点

更新时间:2024-01-24
Struts2中'Requested resource /resourcePath is not available'异常:排查Action配置与结果路径问题,解析DispatcherServlet处理流程及资源部署要点
文章标题:Struts2 Interceptor拦截器中的异常抛出与权限验证:预处理和后处理阶段的自定义异常处理及全局异常映射配置

更新时间:2023-03-08
Struts2 Interceptor拦截器中的异常抛出与权限验证:预处理和后处理阶段的自定义异常处理及全局异常映射配置
文章标题:Struts2实战:精确调试:拦截器顺序异常追踪与配置纠偏

更新时间:2024-04-28
Struts2实战:精确调试:拦截器顺序异常追踪与配置纠偏
文章标题:Struts2异常处理与国际化异常翻译配置指南

更新时间:2025-01-24
Struts2异常处理与国际化异常翻译配置指南
文章标题:Struts2模型驱动中的数据绑定问题:属性覆盖、校验与类型转换解决方案在用户模型绑定中的实践应用

更新时间:2023-10-28
Struts2模型驱动中的数据绑定问题:属性覆盖、校验与类型转换解决方案在用户模型绑定中的实践应用
名词解释
作为当前文章的名词解释,仅对当前文章有效。
Struts2Struts2是一个基于MVC(模型-视图-控制器)设计模式的Java web应用程序框架,由Apache软件基金会提供。它主要用于构建企业级Java Web应用,通过简化和标准化应用程序开发过程,提供了丰富的标签库、强大的表单处理功能以及灵活的插件扩展机制。在Struts2中,开发者可以使用配置文件struts.xml来定义Action、结果页面、全局常量等核心组件,实现请求与响应的映射、业务逻辑处理和页面跳转等功能。
DTD (Document Type Definition)DTD是一种XML文档结构的标准定义方式,在本文中提到的“DOCTYPE Struts Configuration 2.3”即指Struts2.3版本的配置文件DTD定义。这个声明帮助XML解析器理解并验证struts.xml文件的语法和结构是否符合Struts2框架的要求,确保配置文件的有效性与合法性。
OGNL (Object-Graph Navigation Language)OGNL是一种强大的表达式语言,被广泛应用于Struts2框架中进行数据绑定和访问对象属性。在Struts2中,OGNL允许开发者在Action、JSP页面和其他组件之间灵活地传递和操作数据,如从Action中提取属性值到JSP页面展现,或者动态地根据请求参数执行相应逻辑。在更高版本的Struts2中,支持了OGNL 3.0,增强了类型转换、表达式计算和安全性等方面的功能。
Convention over Configuration (约定优于配置)这是一种软件设计范式,强调通过遵循一定的命名约定和项目组织结构,减少开发人员编写大量配置的工作量。在Struts2框架中,通过引入注解等方式,使得一些常见的配置可以通过默认约定自动完成,从而提高开发效率和代码可读性。例如,当遵循特定的目录结构时,Struts2可以自动识别并映射Action类到相应的URL请求上,而无需手动在struts.xml中逐一配置。
延伸阅读
作为当前文章的延伸阅读,仅对当前文章有效。
在深入理解Struts2的核心配置文件struts.xml及其应用之后,我们发现配置文件在现代Java企业级开发中的关键地位不容忽视。事实上,随着技术的不断演进,Apache Struts团队一直在积极更新和完善框架的功能,以适应新的开发需求和安全标准。
近期,Apache Struts 2.5版本中引入了更多增强特性,如支持OGNL 3.0表达式语言,提供更强大的数据绑定和类型转换功能;同时,对配置文件的解析机制进行了优化,增强了XML配置的安全性,减少了潜在的安全漏洞。此外,Struts2社区也提倡使用 Convention over Configuration(约定优于配置)的设计理念,通过注解等方式简化配置,减轻开发者手动编写struts.xml的工作量。
然而,值得注意的是,任何框架配置都与系统安全性息息相关。近年来,Struts2框架曾因配置不当引发过重大安全事件,因此,在实际项目开发过程中,除了掌握如何编写和使用struts.xml,还应密切关注官方发布的安全更新和技术指南,确保及时修补漏洞,遵循最佳实践,以保障应用程序的安全稳定运行。同时,对于大型企业级项目,可以考虑采用Spring Boot等现代框架结合Struts2进行模块化设计和微服务架构,既能利用Struts2的优势处理复杂的MVC逻辑,又能享受到Spring Boot带来的自动配置、快速部署等便利。
知识学习
实践的时候请根据实际情况谨慎操作。
随机学习一条linux命令:
dig @dns_server domain_name MX - 查询指定DNS服务器上某域名的邮件交换记录(MX记录)。
随便看看
拉到页底了吧,随便看看还有哪些文章你可能感兴趣。
宽屏专业咨询服务展示网页模板下载 12-27 暗色系商业付费服务公司网站模板 12-22 React组件与原生Web组件互操作:生命周期、数据流及DOM API、Refs和Hooks实践 12-09 新媒体歪秀直播官网模板html模板下载 11-12 java中的jsd和cgb 11-03 紫色响应式图书音乐点评网站模板 09-17 jquery插件回调方法 09-01 食品餐饮网站响应式前端网站模板下载 08-07 jQuery图片放大镜插件lightzoom.js 07-29 本次刷新还10个文章未展示,点击 更多查看。
[转载]英特尔oneAPI——异构计算学习总结 07-22 跨浏览器磨砂效果背景图片模糊特效 07-20 Memcached过期时间生效机制解析:LRU算法、时间精度与有效期设置实践 06-17 简洁建筑公司网站模板下载 06-10 紫色淡雅商业教育培训机构网站模板 05-15 基于magnific-popup.js和animate.css的响应式lightbox特效 04-17 [转载]php文件直链源码,PHP-全民K歌直链信息解析源码 03-14 ClickHouse中的LZ4、ZSTD与ZLIB数据压缩算法选择及应用场景分析:兼顾查询速度、实时性与存储优化 03-04 Golang并发编程:利用Goroutine与通道实现高效同步通信和解决数据竞争 02-26 精品响应式环球旅游定制公司官网模板 02-17 [转载]软件供应链安全威胁:从“奥创纪元”到“无限战争” 02-05
时光飞逝
"流光容易把人抛,红了樱桃,绿了芭蕉。"