包與命名空間

2021-07-15 22:16:31 字數 949 閱讀 8483

struts2是用包來組織action,每個包有命名空間,如果要訪問包下面的action,那麼包的命名空間是url的一部分。

在struts.xml中,

file="strutsconfig/struts-diaryuser.xml"/>
package元素的幾個屬性:

name:包的名字,必要屬性,該屬性是被其他包引用的key值

namespace:可選屬性,定義命名空間

extends:可選,指定繼承哪個父包。注意,被繼承的父包需要放置前面

abstract:可選。為true時,為抽象包,抽象包不能有action定義。比如檢視struts2-core-2.2.1.jar中的struts-default.xml的struts-default包,如下:

注意,同乙個命名空間底下不能有同名action,但是不同命名空間裡面可以有同名action。

預設命名空間和根命名空間的區別:

預設命名空間:配置package的時候沒有指定namespace,那麼該包下的所有action都在預設命名空間底下。

根命名空間:配置package的時候namespace的值是「/」。

二者區別:

當訪問aabb/haha.action,如果在/aabb這個命名空間底下找不到haha.action,那麼就直接跳到預設命名空間去找haha.action。(疑問:如果不存在/aabb這個命名空間,是報錯,還是仍然去預設命名空間去找haha.action?);而根命名空間只能找根命名空間底下的action,與其他普通命名空間並無區別,只是根命名空間的url是「/」罷了。

另外:命名空間只有乙個級別,比如「/aa/bb/haha.action」,如果在/aa/bb這個命名空間沒有找到haha.action,那麼就會直接去找預設命名空間的haha.action,並不會去找/aa命名空間

C 命名空間 預設命名空間與匿名命名空間

2.匿名命名空間 預設命名空間也叫全域性命名空間,所有沒有置於某一具體命名空間下的 即在預設命名空間下,例如func main 函式。include void func void intmain int argc,char ar void func void 需要注意的是 這個就是類似於c語言裡簡單...

Day21 命名空間與閉包

1 命名空間與作用域 在python中所有名字的定義都放到namespace中 命名空間分類 內建命名空間 import this dir buil in 檢視全部內建 全域性命名空間 區域性命名空間 在函式體內等 查詢全域性和區域性 globals 方法可以獲得全域性的內容 該方法獲得的全域性內容...

應用命名空間與例項命名空間

需求 正確的 應該這麼寫 cms中url.py檔案 cms中view檔案 return httpresponse 首頁 else reverse的寫法 url reverse cms login return redirect url def login request return httpres...