您好,登錄后才能下訂單哦!
struts2 package元素如何在Java項目中進行配置?很多新手對此不是很清楚,為了幫助大家解決這個難題,下面小編將為大家詳細講解,有這方面需求的人可以來學習下,希望你能有所收獲。
package 元素的所有屬性及對應功能:
Attribute | Required | Description |
name | yes | key to for other packages to reference ---包名稱,用來讓別的包繼承時使用不能有重復 |
extends | no | inherits package behavior of the package it extends -----當前包所要繼承的父包,繼承之后,當前包擁有父包中所定義的任意類、攔截器等 |
namespace | no | 用于區分包中相同的類 |
abstract | no | declares package to be abstract (no action configurations required in package)定義當前包為一個抽象的包也就是說不能有action元素在當前包中 |
例子:
假如我有以下的配置段落
<struts> <package name="p1" extends="struts-default"> <action name="login" class="com.example.action.Login"> <result>/success.jsp</result> </action> <action name="login1" class="com.example.action.Login"> <result>/success.jsp</result> </action> </package> <package name="p2" extends="struts-default" namespace="/testNameSpace"> <action name="login" class="com.example.action.Login"> <result>/success.jsp</result> </action> </package> </struts>
說明:
a、 包p1沒有定義namespace,說明p1用的是默認空間""
現在有下面的請求:
1、/工程名/login.action
------這個請求對應p1包下的action name=login
2、/工程名/testNameSpace/login.action
-----這個請求對應p2包下的action name=login
3、/工程名/testNameSpace/login1.action
----這個請求是請求p2包下的信息的,如果struts在檢索了p2包下的所有action后沒有檢索到當前請求的login1,這時struts會檢索前一個命名空間,這里是默認空間下是否有當前請求,檢查發現存在login1就得到當前檢索
這里我有個個人的建議:
無論你的namespace配置或者沒配置,也無論配置啥樣,你在寫跳轉的url的時候請你也把
‘/工程名/'帶上,寫成這樣:/工程名/命名空間1/命名空間2/actionName.action這樣寫能保證路徑的正確性,當然如果你在寫跳轉的時候不發暈,可以視你的配置情況加或者不加這個!
看完上述內容是否對您有幫助呢?如果還想對相關知識有進一步的了解或閱讀更多相關文章,請關注億速云行業資訊頻道,感謝您對億速云的支持。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。