接触Struts2--理解Struts.xml标签

本文详细解析了Struts2框架的配置方式,包括根标签<struts>的作用、模块化配置通过<package>实现的方法及其属性含义,如name、extends和namespace等,并举例说明了不同namespace设置对URL的影响。

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

<struts> 为根标签 没什么含义

<package>代表一个模块,模块里可以放多个action

属性name为模块的名称(唯一);

属性extends="struts-default"实际上是把 package为struts-default中的所有东西 继承过来。 这里面的东西是struts2运行的最基本的东西

属性namespace 决定其url 如:

<struts>
	<package name="helloworld" namespace="/" extends="struts-default">
		<action name="helloworldaction" class="cn.hpy.structs.action.HelloWorldAction">
			<result name="index">index.jsp</result>
		</action>
	</package>
</struts>
中 url为http://localhost:8080/day1_struts/helloworldactioin.actoin 红色斜杠为namespace(根目录:WebRoot);


如果改namespace=“/base”;

其url为http://localhost:8080/day1_struts/base/helloworldactioin.actoin .但是也会报错,它会以为index.jsp在/base文件夹下面。


小结:如果namespace为 "/",那么紧接着就该跟action中的name值(名称)。

但是/base后面加任何/abcdefgh...都能请求到action

原因:

查找规则确定的是 先查找/base/a下的helloworldaction.

再去查找/base下的hellloworldaction;


要解决这个 就需要在webroot下创建一个base文件夹


额外:

要解决继承功能也需要靠namespace 如下

<struts>
	<package name="helloworld" namespace="/" extends="struts-default">
		<action name="helloworldaction" class="cn.hpy.structs.action.HelloWorldAction">
			<result name="index">index.jsp</result>
		</action>
	</package>
	<package name="abc" namespace="/abc" extends="helloworld">
	</package>
</struts>

访问url为http://localhost:8080/day1_struts/abc/helloworldactioin.actoin 就是通过 abc包去访问的
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值