package 元素的所有屬性及對應(yīng)功能
Attribute | Required | Description |
---|---|---|
name | yes | key to for other packages to reference ---任意的包名稱,用來讓別的包繼承是使用不能重復(fù) |
extends | no | inherits package behavior of the package it extends -----當(dāng)前包所要繼承的父包,繼承之后,當(dāng)前包擁有父包中所定義的任意類、攔截器等 |
namespace | no | 用于區(qū)分包中相同的類,例子見下。 |
abstract | no | declares package to be abstract (no action configurations required in package)定義當(dāng)前包為一個(gè)抽象的包(不能有action元素在當(dāng)前包中) |
<struts>
<package name="abc" extends="struts-default">
<action name="login" class="com.jpioneer.action.Login">
<result>/success.jsp</result>
</action>
<action name="login1" class="com.jpioneer.action.Login">
<result>/success.jsp</result>
</action>
</package>
<package name="abc1" extends="struts-default" namespace="/kfc">
<action name="login" class="com.jpioneer.action.Login">
<result>/aa.jsp</result>
</action>
</package>
</struts>
包abc沒有填寫namespace屬性說明包abc為默認(rèn)空間
包abc1填寫namespace屬性那么包abc1的空間就為/kfc
現(xiàn)在有兩個(gè)請求,都是請求login的:
1、/工程名/login.action------這個(gè)請求abc包下的action name=login的有效
2、/工程名/kfc/login.action-----這個(gè)請求abc1包下的action name=login有效
3、/工程名/kfc/login1.action----這個(gè)請求很明顯是請求abc1這個(gè)包下的信息的,但是struts在檢索了abc1包下的所有action后沒有檢索到當(dāng)前請求的login1,這時(shí)struts會(huì)檢索默認(rèn)空間下是否有當(dāng)前請求,檢查abc下發(fā)現(xiàn)存在login1就得到當(dāng)前檢索。