package的属性
1.name:
配置package元素时必须指定name属性,这是引用该包的唯一标识.
2.extends:
可选属性,指定该包继承的父包,子包可以从一个或多个父包中继承到拦截器、Action等配置,一般会继承Struts2自带的默认文件struts-default.xml配置文件。继承多个父包时逗号隔开:
<package name="temp" extends="struts-default"></package>
<!-- temp2 是另一个package的name的值,通过它来引用-->
注:默认文件struts-default.xml配置文件,也可以是json-default.xml
json-default是继承struts-default,json这个result type是在json-default (struts2-json-plugin-2.1.8.1.jar\struts-plugin.xml)里面定义的,内容如下(省去了xml和doctype标签),从xml的package的extends
可以看出。
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。