在學習structs2的過程中,遇到了namsapce,雖然比較好理解,但是在使用的過程中還是遇到些問題,便將其記錄下來。
作用:
為了解決包含同乙個action的問題,在相同的命名空間裡不能存在相同的action,但是不同的命名空間裡,可以存在相同的action。
**須知:**structs2不支援單獨為action設定命名空間,而是在包package中指定命名空間,如果不指定的話,預設在預設的命名空間下。預設的命名空間為」「,可以接收屬於路徑下的action。
示例1:
如果請求為/login.action 那麼系統會首先查詢命名空間為test的action,如果在這個命名空間找到相對應的action,則使用該類處理請求。否則系統將在預設命名空間裡查詢,找到則使用該類處理,否則系統錯誤。
這種方式namespace使用」/」 和預設的都行。
示例2:
jsp:
structs2:
name="actions"
namespace="/test"
extends="struts-default">
name="login"
class="org.action.useraction">
name="success">/success.jspresult>
name="error">/error.jspresult>
action>
package>
示例2 由於你訪問的是/test/login.action 所以你在進行action對映的時候需要指定命名空間為/test,–就像訪問包下的類一樣。
當然示例二 也可以使用預設的namespace ,或者使用根」/」。
structs2 工作原理
乙個請求在struts2框架中的處理大概分為以下幾個步驟 1 客戶端初始化乙個指向servlet容器 例如tomcat 的請求 2 這個請求經過一系列的過濾器 filter 這些過濾器中有乙個叫做actioncontextcleanup的可選過濾器,這個過濾器對於struts2和其他框架的整合很有幫...
structs2 的工作原理
actionproxy和actioninvocation actionproxy是在xwork和真正的action之間充當 角色,在通過框架執行action的過程中,因為使用的是 而不是直接操縱物件,所以在 中封裝 result等二外的 actionproxy持有actioninvocation物件...
Structs2工作流程
1 客戶端 client 向action髮用乙個請求 request 2 container通過web.xml對映請求,並獲得控制器 controller 的名字 3 容器 container 呼叫控制器 strutsprepareandexecutefilter或filterdispatcher ...