1.訪問Servlet API
1.1.在Servlet中我們可以直接HttpServletRequest、HttpServletResponse這些API,而Struts2的Action中沒有這些,三種方式訪問API:
1.1.1.ActionContext
1.1.2.實現***Aware接口
1.1.3.ServletActionContext
2.Action的搜索
2.1.Action的搜索順序
3.方法的動態調用
3.1.概念:爲了解決一個Action對應多個請求的處理,以免Action過多。
3.2.訪問方法的方式(3種)
3.2.1.指定method的方式(在action標籤中添加method屬性指定方法名)
<action name="addAction" class="com.imooc.action.HelloWorldAction" method=”add”>
<result>/add.jsp</result>
</action>
3.2.2.感嘆號的方式(官方不推薦)
3.2.3.通配符的方式(通過*號來替代,達到一個動態訪問的效果推薦這種方式)
<action name="helloworld_*" class="com.imooc.action.HelloWorldAction" method=”{1}”>
<result name=”add”>/{1}.jsp</result>
</action>
4.指定多個配置文件
4.1.利用包含配置文件
4.1.1.<include file=”login.xml”></include>
4.1.2.注意每個配置文件的編碼:
<constant name=”struts.i18n.encoding” value=”UTF-8”></constant>
5.默認Action
5.1.爲了解決用戶訪問找不到Action,防止出現404這樣頁面給用戶帶來不好的體驗而設置的默認的Action。
5.2.在package中增加如下代碼和增加error.jsp頁面
<default-action-ref name=”index”></default-action-ref>
<action name=”index”>
<result>/error.jsp</result>
</action>
6.Struts2的後綴(三種方式)
6.1.將後綴改成html的形式加上如下配置:
6.1.1.在struts.xml文件中:<constant name=”struts.action.extension” value=”html”></constant>
6.1.2.在struts.properties文件中:struts.action.extension = action,do,html,
6.1.3.web.xml的攔截器中配置(不常用)
7.接受參數
7.1.使用Action的屬性參數來獲取
7.2.使用Domain Model接受參數
7.3.使用ModelDriven接受參數(要Action實現ModelDriven接口)
8.處理結果類型
8.1.數據處理流程
8.2.5個系統內置屬性(常量)
8.3.處理結果類型
8.3.1.局部結果
8.3.2.全局結果<global-results></global-results>標籤作爲一個全局的返回結果所有的Action公用。
8.3.4.<result></result>標籤中的type屬性,默認值爲dispatcher,這個類型支持JSP視圖技術。
9.總結