Java struts2 package元素配置及實(shí)例解析
package 元素的所有屬性及對(duì)應(yīng)功能:
Attribute Required Description name yes key to for other packages to reference ---包名稱,用來讓別的包繼承時(shí)使用不能有重復(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='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用的是默認(rèn)空間''
現(xiàn)在有下面的請(qǐng)求:
1、/工程名/login.action
------這個(gè)請(qǐng)求對(duì)應(yīng)p1包下的action name=login
2、/工程名/testNameSpace/login.action
-----這個(gè)請(qǐng)求對(duì)應(yīng)p2包下的action name=login
3、/工程名/testNameSpace/login1.action
----這個(gè)請(qǐng)求是請(qǐng)求p2包下的信息的,如果struts在檢索了p2包下的所有action后沒有檢索到當(dāng)前請(qǐng)求的login1,這時(shí)struts會(huì)檢索前一個(gè)命名空間,這里是默認(rèn)空間下是否有當(dāng)前請(qǐng)求,檢查發(fā)現(xiàn)存在login1就得到當(dāng)前檢索
這里我有個(gè)個(gè)人的建議:
無論你的namespace配置或者沒配置,也無論配置啥樣,你在寫跳轉(zhuǎn)的url的時(shí)候請(qǐng)你也把
‘/工程名/’帶上,寫成這樣:/工程名/命名空間1/命名空間2/actionName.action這樣寫能保證路徑的正確性,當(dāng)然如果你在寫跳轉(zhuǎn)的時(shí)候不發(fā)暈,可以視你的配置情況加或者不加這個(gè)!
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持好吧啦網(wǎng)。
相關(guān)文章:
1. 如何對(duì)php程序中的常見漏洞進(jìn)行攻擊2. PHP循環(huán)與分支知識(shí)點(diǎn)梳理3. ThinkPHP5 通過ajax插入圖片并實(shí)時(shí)顯示(完整代碼)4. JSP之表單提交get和post的區(qū)別詳解及實(shí)例5. SXNA RSS Blog 聚合器程序6. ASP中格式化時(shí)間短日期補(bǔ)0變兩位長(zhǎng)日期的方法7. Ajax請(qǐng)求超時(shí)與網(wǎng)絡(luò)異常處理圖文詳解8. JavaWeb Servlet中url-pattern的使用9. jsp EL表達(dá)式詳解10. 利用ajax+php實(shí)現(xiàn)商品價(jià)格計(jì)算
