struts2的命名空间分为两类:
1)默认命名空间
在struts2中的struts.xml中有package的namespace属性如果此属性为""或者不填写则标识默认命名空间
如:<package name="index" extends="struts-default">
请求路径先从制定命名空间开始匹配执行,如果匹配不到则从默认命名空间开始匹配执行。
2)制定命名空间
在struts2中的struts.xml中有package的namespace属性为"/"或者"/***"则标识制定命名空间
前者的URL访问是根目录访问,后者是根目录/namespace访问。
请求路径先从制定命名空间开始匹配执行,如果匹配到则执行否则执行默认命名空间。如果都执行不到则报告错误信息。
默认命名空间和命名空间的区别:
默认命名空间里的ACTION可以处理任何命名空间的ACTION请求。
根命名空间智能处理根命名空间下的ACTION请求。
命名空间只有一个级别。描述为:如果请求URL为:http://local.struts2.com:8080/test/namespace/login.action
struts2先从/test/namespace的命名空间中查找login的ACTION,如果找到该命名空间的ACTION则处理此action的请求。否则,struts2将直接进入默认的命名空间查找名为login的action,而不会在/test的命名空间下面查找login的ACTION