详解Struts2 Action名称的搜索顺序
1.獲得請(qǐng)求路徑的URL,例如URL為:
?? http://127.0.0.1:8080/struts2/test/path1/path2/path3/test.action
2.首先尋找namespace為/path1/path2/path3的package,
?? 如果存在這個(gè)package,則在這個(gè)package中尋找名字為test的Action,
????? 若找到了該Action,則訪問(wèn)該Action,
????? 若沒(méi)有找到該Action則立即轉(zhuǎn)向默認(rèn)表空間[namespase=""]去尋找該Action
????????? 若在默認(rèn)表空間中找到了該Action,則執(zhí)行該Action
????????? 若在默認(rèn)表空間中沒(méi)有找到該Action,則執(zhí)行該表空間中定義的默認(rèn)action
????????????? 若默認(rèn)表空間中定義了默認(rèn)Action,則執(zhí)行該Action
????????????? 若默認(rèn)表空間中沒(méi)有定義默認(rèn)的Action,則報(bào)404找不到內(nèi)容的錯(cuò)誤
?? 如果不存在這個(gè)package則轉(zhuǎn)步驟3;
3.尋找namespace為/path1/path2的package,
?? 如果存在這個(gè)package,則在這個(gè)package中尋找名字為test的action,
?????? 若找到了該Action,則訪問(wèn)該Action,
????????? 若沒(méi)有找到該Action則立即轉(zhuǎn)向默認(rèn)表空間[namespase=""]去尋找該Action
????????????? 若在默認(rèn)表空間中找到了該Action,則執(zhí)行該Action
????????????? 若在默認(rèn)表空間中沒(méi)有找到該Action,則執(zhí)行該表空間中定義的默認(rèn)action
????????????????? 若默認(rèn)表空間中定義了默認(rèn)Action,則執(zhí)行該Action
????????????????? 若默認(rèn)表空間中沒(méi)有定義默認(rèn)的Action,則報(bào)404找不到內(nèi)容的錯(cuò)誤
??
?? 如果不存在這個(gè)package,則轉(zhuǎn)步驟4;
4.尋找namespace為/path1的package,
?? 如果存在這個(gè)package,則在這個(gè)package中尋找名字為test的action,
?????? 若找到了該Action,則訪問(wèn)該Action,
????????? 若沒(méi)有找到該Action則立即轉(zhuǎn)向默認(rèn)表空間[namespase=""]去尋找該Action
????????????? 若在默認(rèn)表空間中找到了該Action,則執(zhí)行該Action
????????????? 若在默認(rèn)表空間中沒(méi)有找到該Action,則執(zhí)行該表空間中定義的默認(rèn)action
????????????????? 若默認(rèn)表空間中定義了默認(rèn)Action,則執(zhí)行該Action
????????????????? 若默認(rèn)表空間中沒(méi)有定義默認(rèn)的Action,則報(bào)404找不到內(nèi)容的錯(cuò)誤
?? 如果仍然不存在這個(gè)package,就去默認(rèn)的namaspace的package下面去找名字為test的action(默認(rèn)的命名空間為空字符串""),
?? 如果還是找不到,頁(yè)面提示找不到action,報(bào)404找不到內(nèi)容的錯(cuò)誤
?
另:若沒(méi)有定義默認(rèn)的表空間,則在上述要訪問(wèn)默認(rèn)表空間[namespase=""]的位置,就此中斷,直接提示404找不到action
《新程序員》:云原生和全面數(shù)字化實(shí)踐50位技術(shù)專家共同創(chuàng)作,文字、視頻、音頻交互閱讀總結(jié)
以上是生活随笔為你收集整理的详解Struts2 Action名称的搜索顺序的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: asp.net页面回传与js调用服务端事
- 下一篇: 利用getLayoutParams()方