詳解Struts2 Action名稱的搜尋順序

2021-07-09 09:23:11 字數 1310 閱讀 9574

1.獲得請求路徑的url,例如url為:

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

struts2 action 配置方法

struts2 action幾乎完全吸收了xwork 的精華,近日學習struts 2,總結一下action的配製方法。首先看一下com.opensymphony.xwork2.action的介面宣告,action提供execute 方法,子類必須實現execute 方法。public inte c...

struts2 action中result引數詳解

chain 用來處理action鏈 com.opensymphony.xwork2.actionchainresult dispatcher 用來轉向頁面,通常處理jsp org.apache.struts2.dispatcher.servletdispatcherresult freemaker ...

Struts2 Action獲取Scope物件

方式 一 與servlet解耦合的非ioc方式 獲取的scope物件與容器無關,通過actioncontext獲取。loginaction 如下 package com.asm public class loginaction extends actionsupport 省略username的get...