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