Struts2对Action名称的搜索顺序

Struts2对Action名称的搜索顺序
新建一个struts2项目,命名为struts2。按照如下XML文件配置一个Action:
1 < package  name ="hello"  namespace ="/action"  extends ="struts-default" >
2      < action  name ="helloworld"  class ="com.xiaobai.struts.action.HelloWorldAction"  method ="execute" >
3      < result  name ="success" > /WEB-INF/page/hello.jsp </ result >
4      </ action >
5 </ package >
将应用部署,访问如下路径: http://localhost:8080/struts2/action/sdf/dsf/32/d/helloworld 依然可以访问到Action。
这主要是因为Struts2对Action名称的搜索是按照一定顺序进行的。以上面的情况为例:
1.struts2首先搜索命名空间为/action/sdf/dsf/32/d的包是否存在,存在的情况下,是否有helloworld这个Action;
2.搜索命名空间为/action/sdf/dsf/32的包是否存在,存在的情况下,是否有helloworld这个Action;
3.搜索命名空间为/action/sdf/dsf的包是否存在,存在的情况下,是否有helloworld这个Action;
4.搜索命名空间为/action/sdf的包是否存在,存在的情况下,是否有helloworld这个Action;
5.搜索命名空间为/action的包是否存在。在这种情况下能够搜索到,因此,可以访问到helloworld这个Action。
此外,如果按照这种搜索顺序搜索,发现所有的包均不存在,那么struts2则会到命名空间为""(默认命名空间)的包下面去找helloworld这个Action。

你可能感兴趣的:(Struts2对Action名称的搜索顺序)