struts.xml配置文件

本文深入探讨了Struts2框架的核心配置文件struts.xml的结构与应用,详细讲解了Struts2如何通过struts.xml配置文件拦截用户请求并决定Action处理流程。同时,介绍了struts.xml中Bean、常量、导入配置文件、包及Action配置的细节。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Struts2的核心配置文件时struts.xml,其就有重要的作用。所有的用户请求被Struts2核心控制器StrutsPrepareAndExecuteFilter拦截,然后查询配置文件struts.xml决定由哪一个Action处理。
Struts2框架有两种配置文件格式:struts.xml和struts.properties,一般建议使用struts.xml。

struts.xml配置文件的结构:

<!-- 
	表明解析本XML文件的DTD(Document Type Definition)文档位置,DTD是对文档类型的定义,
	XML解析器使用DTD文档来检查XML文件的合法性,不同的Struts版本对应的配置文件中的DTD信息
	会有一定的差错,切记适用于版本相对应的DTD信息
 -->
<!DOCTYPE struts PUBLIC
	"-//Apache Software Foundation//DTD Struts Configuration 2.5//EN"
	"http://struts.apache.org/dtds/struts-2.5.dtd">
<struts>
	<!-- Bean配置 -->
	<bean name="Bean的名字" class="自定义的组件类"></bean>
	
	<!-- 常量配置,指定Struts国际化资源文件的名字为messageResource -->
	<constant name="struts.custom.il8n.resources" value="messageResource"></constant>
	
	<!-- 导入一个配置文件,通过这种方式可以将Struts2的Action按模块配置到多个配置文件中 -->
	<include file="example.xml"/>
	
	<!-- 所有的Action配置都应该放在package下,name定义包名,
		extends定义继承包空间struts-default -->
	<package name="zzf" extends="struts-default">
		<!-- Action配置可以有很多对,name是对业务控制器命名,
				在表单中指定的名字需要与该名字一致;class指定Action类的位置 -->
		<action name="login" class="loginAction.LoginAction">
			<!-- 定义两个逻辑视图和物理资源之间的映射,
					name值是Action中返回的结果,即逻辑视图 -->
			<result name="error">/login/login.jsp</result>
			<result name="success">/login/success.jsp</result>
		</action>
	</package>
</struts>

Bean配置:
Bean在struts.xml中的配置格式如下:

<bean name="Bean的名字" class="自定义的组件类"></bean>

bean 元素的常用属性如下所示:
(1)、name:指定Bean实例化对象的名字,对于相同类型的多个Bean实例,其对应的name属性值不能相同,该项是可选项。
(2)、class:指定Bean实例实现类,即对应的类,该项是必选项。
(3)、type:指定Bean实例实现的Struts2规范,该规范通常是通过某个接口来体现的,因此该属性的值通常是一个Struts2接口。如果配置Bean作为框架的一个核心组件来使用,就应该指定该属性,该项是可选项。
(4)、scope:指定Bean的作用域,该项是可选项。
(5)、optional:指定该Bean是否是一个可选Bean,该项是可选项。
(6)、static:指定允许不创建Bean实例,而是让Bean接受框架常量,这是该属性设为true。但是当指定了type属性时,该属性不能设为true。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值