1. <package name="kewen" extends="struts-default"> 不加namespace的即为默认命名空间,在默认命名空间内定义的Action,只要请求结尾与Action名相同,都可以处理。
例如:
<package name="struts2" extends="struts-default">
<action name="login" class="com.kewen.Login">
这里定义的action对于
http://localhost:8080/kewen/login.action
http://localhost:8080/kewen/dota/login.action
都是可以处理的。
2.<package name="kewen" extends="struts-default" namespace = "dota">
<action name="login" class="com.kewen.Login">
定义了命名空间,就只能处理
http://localhost:8080/kewen/dota/login.action
3. 同时定义两个一样名称的Action于默认命名空间与加了namespace的package中时,Struts2会先按照对应路径查找一遍,如果获取不到对应名称的Action,才会查询默认命名空间中是否有对应的action。
例如1和2中的两个包都存在时,那么对于
http://localhost:8080/kewen/dota/login.action
会首先查询dota这个命名空间中的login.action。 如果没有的情况下才会去默认查询空间中搜索。