3.1 Struts2執行過程
一、獲取Struts2資源
二、在應用程序中導入Struts2的類庫
三、在web.xml中配置StrutsPrepareAndExecuteFilter
四、編寫Action類進行配置
五、配置返回結果與物理視圖資源的關係
六、編寫結果視圖
web.xml
web
<filter> <filter-name>struts2</filter-name> <filter-class> org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter </filter-class> </filter> <filter-mapping> <filter-name>struts2</filter-name> <url-pattern>/*</url-pattern> </filter-mapping>
Action類
核心控制器(Filter):用於攔截用戶的請求 ,對請求進行處理
業務控制器(Action):調用相應的Model類實現業務吃了,返回結果
Struts.xml
apache
<struts> <constant name="struts.ui.theme" value="simple"></constant> <package name="default" namespace="/" extends="struts-default"> <action name="login" class="struts.LoginAction"> <result name="success" type="dispatcher">guanli.jsp</result> <result name="input">login.jsp</result> </action> </package> </struts>
Result
一、當web容器接收到請求後,將請求交由在web中配置的Struts2框架的控制器StrutsPrepareAndExecuteFilter(控制器)
二、由StrutsPrepareAndExecuteFilter肯定請求對於的Action(業務控制器)
三、框架根據Action返回的結果字符串,由StrutsPrepareAndExecuteFilter選擇對於的result,將結果呈現給用戶
Action只負責返回結果,不與視圖關聯
Struts2配置文件
處理中文亂碼:
<constant name="struts.il8n.encoding" value="UTF-8"></constant>
Struts2的包:
<package name="default" namespace="/" extends="struts-default">
name:必需且惟一,指定包的名稱
extends:指定要擴展的包
namespace:可選,定義包中的Action的命名空間
Struts-default.xml:Struts2的默認配置文件,提供默認值,自動加載
struts-plugin.xml:Struts2插件使用的配置文件
3.2 Action的配置
做用:
一、封裝工做單元
二、數據轉移場所
三、返回結果字符串
method屬性:
例:
安全
<action name="login" class="struts.LoginAction" method="login">
<result name="success" type="dispatcher">guanli.jsp</result>
<result name="input">login.jsp</result>
<result name="error">error.jsp</result>
</action>
調用login.action以後,執行login方法,根據返回結果字符串返回結果視圖
Action動態方法調用
app
<action name="Struts" class="struts.StrutsAction">
<result name="login">guanli.jsp</result>
<result name="Guanli">guanli.jsp</result>
<result name="Details">details.jsp</result>
<result name="Fabu">guanli.jsp</result>
<result name="Update">guanli.jsp</result>
<result name="Register">login.jsp</result>
</action>
這種方法的使用能夠減小xxxAction的數量,可是會帶來安全隱患
使用方法:Struts!login.action
通配符:
框架
<action name="*house" class="struts.StrutsAction" method="{1}">
<result name="success">{1}.jsp</result>
<result name="input">{1}.jsp</result>
<result name="error">error.jsp</result>
</action>
調用方法:loginhouse.action,配置該action元素時,還指定了method屬性
默認的Action:
jsp
<default-action-ref name="defaultAction"> <action> <result name="error">error.jsp</result> </action> </default-action-ref>
3.3 Result的配置
經常使用結果類型
dispatcher:result默認結果類型,以轉發方式請求指定的視圖資源,請求中包含的數據信息依然存在
redirect:以重定向方式請求指定的視圖資源,請求中包含的數據信息將丟失
redirectAction:以重定向方式請求指定的視圖資源,請求中包含的數據信息將丟失,主要重定向到另外一個Action
動態結果
經過指定方法返回的值,指定執行哪個Action(業務控制器)
全局結果
ui
<struts> <constant name="struts.ui.theme" value="simple"></constant> <package name="default" namespace="/" extends="struts-default"> <global-result> <result name="error">error.jsp</result> <result name="login" type="redirect">login.jsp</result> </global-result> </package> </struts>