第三章 Struts2配置詳解

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>
相關文章
相關標籤/搜索