1. 程式人生 > >struts.xml文件中package元素的各大屬性講解

struts.xml文件中package元素的各大屬性講解

oca clas ace style 框架 通過 配置文件 true post

Struts2中的包:

Struts2使用包來組織Action,將Action放在包下來定義,通過package元素配置一個包,通過package的子元素action來定義一個Action;
Struts2框架中核心組件就是Action、攔截器等,Struts2使用包來管理Action和攔截器等。每個包就是多個Action、攔截器引用的集合。

package的屬性:

1.name:
配置package元素時必須指定name屬性,這是引用該包的唯一標識.
2.extends:
可選屬性,指定該包繼承的父包,子包可以從一個或多個父包中繼承到攔截器、Action等配置,一般會繼承Struts2自帶的默認文件struts-default.xml配置文件。繼承多個父包時逗號隔開:

<package name="temp" extends="struts-default,temp2"></package>
<!-- temp2 是另一個package的name的值,通過它來引用-->

3.namespace:
可選屬性,定義帶包的命名空間,默認值為“ ”。其運用原理是package的name屬性作為其唯一標識,同一個命名空間內不能出現相同name值的package,否則前面定義的package會被後面的覆蓋,此時改放不同的命名空間下就可以了,處理時記得是 命名空間+Action名,如:

<package name="package_temp
" extends="struts-default"> <action name="action_temp"> </action> </package> <package name="package_test" extends="struts-default" namespace="/book"> <action name="action_test"> </action> </package> <!-- 訪問package_temp:http://localhost:8080/action_temp.action-->
<!-- 訪問package_test:http://localhost:8080/book/action_test.action-->

  如果請求為/book/book.action,系統首先找/book命名空間裏名為book的Action,如果在該命名空間裏找到,則使用該Action處理請求;否則系統將到默認命名空間中查找名為book的Action,如果兩個命名空間都找不到則系統出現錯誤。
4.abstract:
可選屬性,指定該包是否是一個抽象包。抽象包的含義是該包不能包含Action的定義,值為true 、false

struts.xml文件中package元素的各大屬性講解