Package元素属性:
属性 | 是否必需 | 说明 |
name | 是 | 被其他包引用时的键(key) |
Extends | 否 | 指定要扩展的包 |
namespace | 否 | 指定命名空间 |
abstract | 否 | 声明包为抽象的 |
命名空间Namespace配置
Package元素的namespace属性可以将包中的action配置为不同的名称空间,这样在不同名称空间中可以使用同名的action. Struts2框架使用action的名字和它所在的名称空间来标识一个action 。
当struts2接收到一个请求的时候,它会将请求的URL分为namespace和action名字这两个部分,然后struts2就会从struts.xml中查找namespace/action这个命名对,如果没有找到,struts2就会在默认的名称空间中搜索相应的action名。
Default包在默认的名称空间中
<package name=”default”> <action name=”foo” class=”mypackage.simpleAction”> <result name=”success” type=”dispatcher”>greeting.jsp</result> </action> <action name=”bar” class=”mypackage.simpleAction”> <result name=”success” type=”dispatcher”>bar1.jsp</result> </action> </package> |
Mypackage1包在根名称空间中
<package name=”mypackage1” namespace=”/”> <action name=”moo” class=”mypackage.simpleAction”> <result name=”success” type=”dispatcher”>moo.jsp</result> </action> </package> |
Mypackage2包在/barspace名称空间中
<package name=”mypackage2” namespace=”/barspace”> <action name=”bar” class=”mypackage.simpleAction”> <result name=”success” type=”dispatcher”>bar2.jsp</result> </action> </package> |