package元素用于定义struts.xml中的包配置,<package>中可以定义action和拦截器等。使用package时一般须定义以下几个属性。
1、name
这个属性必须指定,代表包的名称,由于struts.xml可以定义不同不同的package,而且它们之间还可以相互引用,所以必须指定名称。
2、extends
这个属性是可选的,表示该包继承了其他的包,但是包信息的获取是配置文件中的先后顺序进行的,也就是说父包必须在子包之前定义。一般情况下都会继承一个名为“struts-default”的包,这个包是struts 2内置的。
3、namespace
该属性可选,用来指定一个命名空间,定义命名空间很简单,只要指定“namespace="/*"”就可以了,其中“*”是我们自定的。如果直接指定“"/"”,表示设置命名空间为根命名空间。如果不指定则为默认命名空间“""”。
设置了命名空间之后的页面请求也会发生改变,请求该为“命名空间名字/请求的action名”,此时框架会现在指定的命名空间中查找请求的action名,如果找不到就会在默认的命名空间中查找。当然了,如果你没有改页面请求,还是原来的“请求的action名”这样的请求,框架就会先在根命名空间中查找,如果找不到再去默认命名空间中查找。
4、abstract
该属性是可选的,定义该包是一个抽象包,不能包含<action>配置信息,但可以被继承。(个人感觉不出这个属性的用途,有人知道的话请告诉我。)