Action名称的搜索顺序以及配置中的各项默认值

一、Action名称的搜索顺序

1、获得请求的URI,例如ul是:http://server/struts2/path1/path2/path3/test.action

2、首先寻找namespace为/path1/path2/path3的package,如果不存在这个package则执行步骤3;如果存在这个package,则在这个package中寻找名字为test的action,当在该package下寻找不到action时就会跑到默认namespace的package里面寻找action(默认的命名空间为空字符串),如果在默认namespace的package里面还寻找不到该action,页面提示找不到action

3、寻找namespace为/path1/path2的package,如果不存在这个package,则转到步骤4;如果存在这个package,则在这个package中寻找为test的action,当在该package下寻找不到action时就会跑到默认namespace的package里面寻找action(默认的命名空间为空字符串),如果在默认namespace的package里面还寻找不到该action,页面提示找不到action。

4、寻找namespace为/path1的package,如果不存在这个package则执行步骤5,如果存在这个package,则在这个package中寻找为test的action,当在该package下寻找不到action时就会跑到默认namespace的package里面寻找action(默认的命名空间为空字符串),如果在默认namespace的package里面还寻找不到该action,页面提示找不到action。

5、寻找namespace为/的package,如果存在这个package,则在这个package中寻找名字为test的action,当在package中寻找不到action或者不存在该package时,都会去默认的namespace的package里面寻找action,如果还找不到,页面提示找不到action。

二、Action配置中的各项默认值

<package name="itcast" namespace="/test" extends="struts-default">
        <action name="helloworld" class="cn.itcast.action.HelloWorldAction" method="execute">
            <result name="success">/WEB-INF/page/hello.jsp</result>
        </action>
    </package>

1、如果配置中没有为action指定class,默认是ActionSupport
2、如果没有为Action指定method,默认执行Action中的execute方法
3、如果没有指定result的name属性,默认值为success

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容