Struts2框架學習(第二講)

在上一篇文章中也提到了,struts2不需要依賴Servelet API,也不用像struts1一樣需要繼承HttpServlet,因此耦合度低,這也是我們在平時項目中之所以使用框架的原因。

今天要講的action的流程:
1,流程
1)攔截器攔截請求,創建代理Action對象,執行方法,返回結果,界面跳轉。
2)攔截器解析請求路徑,獲取Action的名稱,到配置文件中查找action的完整類名,利用反射創建對象。

2、方法特點
public類型,無入參,返回值類型String 。

3、Action類和ActionProxy,ActionInvocation類的關係
這裏寫圖片描述

ActionProxy是Action的代理類,通過解析配置文件獲取Action類中名稱和完整路徑,利用反射機制創建的。

ActionInvocation是Action類的調用者,反射創建的ActionProxy類就存在ActionInvocaiton類中。

4、流程解析

1)http://127.0.0.1:8080/SSHDemo/list.action 客戶端發出請求,struts2的過濾器攔截請求。並且創建action代理,然後根據配置文件mapper去匹配到對應的空間對應的action類中。
2)struts2配置文件對應的空間中該action映射的action類。action中沒有指定執行方法默認爲execute方法。

<action name="list" class="listAction">
<result name="success" >/WEB-INF/jsp/list.jsp</result>
</action>

3) action類中默認的執行方法,返回String類型的結果字符串。

public String execute() {
Map request = (Map) ActionContext.getContext().get("request");
request.put("list",service.selectList());
return "success";
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章