一返帕、Action名稱的搜索順序
1、獲得請(qǐng)求的URI际乘,例如ul是:http://server/struts2/path1/path2/path3/test.action
2溜歪、首先尋找namespace為/path1/path2/path3的package,如果不存在這個(gè)package則執(zhí)行步驟3秒赤;如果存在這個(gè)package猪瞬,則在這個(gè)package中尋找名字為test的action,當(dāng)在該package下尋找不到action時(shí)就會(huì)跑到默認(rèn)namespace的package里面尋找action(默認(rèn)的命名空間為空字符串)入篮,如果在默認(rèn)namespace的package里面還尋找不到該action陈瘦,頁面提示找不到action
3、尋找namespace為/path1/path2的package潮售,如果不存在這個(gè)package痊项,則轉(zhuǎn)到步驟4;如果存在這個(gè)package酥诽,則在這個(gè)package中尋找為test的action鞍泉,當(dāng)在該package下尋找不到action時(shí)就會(huì)跑到默認(rèn)namespace的package里面尋找action(默認(rèn)的命名空間為空字符串),如果在默認(rèn)namespace的package里面還尋找不到該action肮帐,頁面提示找不到action咖驮。
4边器、尋找namespace為/path1的package,如果不存在這個(gè)package則執(zhí)行步驟5托修,如果存在這個(gè)package忘巧,則在這個(gè)package中尋找為test的action,當(dāng)在該package下尋找不到action時(shí)就會(huì)跑到默認(rèn)namespace的package里面尋找action(默認(rèn)的命名空間為空字符串)睦刃,如果在默認(rèn)namespace的package里面還尋找不到該action砚嘴,頁面提示找不到action。
5涩拙、尋找namespace為/的package际长,如果存在這個(gè)package,則在這個(gè)package中尋找名字為test的action兴泥,當(dāng)在package中尋找不到action或者不存在該package時(shí)工育,都會(huì)去默認(rèn)的namespace的package里面尋找action,如果還找不到搓彻,頁面提示找不到action翅娶。
二、Action配置中的各項(xiàng)默認(rèn)值
<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,默認(rèn)是ActionSupport
2燥翅、如果沒有為Action指定method骑篙,默認(rèn)執(zhí)行Action中的execute方法
3、如果沒有指定result的name屬性森书,默認(rèn)值為success