Structs2?核心文件

上一篇:struts基礎知識
下一篇:struts動態(tài)方法調(diào)用

Structs2 核心文件


1. web.xml

  • 任何MVC框架都需要與Web應用整合,不得不借助于web.xml文件,只有配置在web.xml文件中Servlet才會被應用加載。
  • 通常,所有的MVC框架都需要Web應用加載一個核心控制器,對于Struts2框架而言,需要加載StructPrepareAndExecuteFilter,只要Web應用負責加載StructPrepareAndExecuteFilter,StructPrepareAndExecuteFilter將會加載Struts框架。

2. struts.xml

  • 全局變量
  • 用戶請求和相應Action之間的對應關系
  • Action可能用到的參數(shù)和返回結果
  • 各種攔截器的配置

3. structs.properties

  • struts2框架的全局屬性文件,自動加載。該文件包含很多key-value對。
  • 該文件完全可以配置在struts.xml文件中,使用constant元素

4. struts.xml詳解

<!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN" "http://struts.apache.org/dtds/struts-2.0.dtd" >
<struts>

    <!-- include節(jié)點是struts2中組件化的方式 可以將每個功能模塊
       獨立到一個xml配置文件中 然后用include節(jié)點引用 -->
    <include file="struts-default.xml"></include>
    
    
    <!-- package提供了將多個Action組織為一個模塊的方式
        package的名字必須是唯一的 package可以擴展 當一個package擴展自
        另一個package時該package會在本身配置的基礎上加入擴展的package
        的配置 父package必須在子package前配置 
        name:package名稱
        extends:繼承的父package名稱
        abstract:設置package的屬性為抽象的 抽象的package不能定義action 值true:false
        namespace:定義package命名空間 該命名空間影響到url的地址,
        例如此命名空間為/test
        那么訪問是的地址為http://localhost:8080/struts2/test/XX.action
     -->
    <package name="com.kay.struts2" extends="struts-default" namespace="/test">
        <interceptors>
            <!-- 定義攔截器 
                name:攔截器名稱
                class:攔截器類路徑
             -->
            <interceptor name="timer" class="com.kay.timer"></interceptor>
            <interceptor name="logger" class="com.kay.logger"></interceptor>
            <!-- 定義攔截器棧 -->
            <interceptor-stack name="mystack">
                <interceptor-ref name="timer"></interceptor-ref>
                <interceptor-ref name="logger"></interceptor-ref>
            </interceptor-stack>
        </interceptors>
        
        <!-- 定義默認的攔截器 每個Action都會自動引用
          如果Action中引用了其它的攔截器 默認的攔截器將無效 -->
        <default-interceptor-ref name="mystack"></default-interceptor-ref>
        

        <!-- 配置默認的action

               當前我們訪問的一個命名空間下的action資源的時候,
               如果這個資源不存在,這時就會報錯,
               這時我們可以使用這樣的配置,
               這樣配置之后,如果用戶訪問了一個不存在的資源,
               那么就會調(diào)用這個配置指向的action資源-->

         <default-action-refname="ActionIsNotFound"></default-action-ref>
        
        <!-- 全局results配置 -->
        <global-results>
            <result name="input">/error.jsp</result>
        </global-results>
        
        <!-- Action配置 一個Action可以被多次映射(只要action配置中的name不同)
             name:action名稱
             class: 對應的類的路徑
             method: 調(diào)用Action中的方法名
        -->
        <action name="hello" class="com.kay.struts2.Action.LoginAction">
            <!-- 引用攔截器
                name:攔截器名稱或攔截器棧名稱

               由于每一個包都是直接或者間接繼承了struts-default這個包,
               這個包中定義了很多攔截器和攔截器棧,
               并且定義了一個默認的攔截器棧(defaultStack),
               只要是我們寫的action不去主動的引用攔截器或者攔截器棧,
               這個默認的攔截器棧就會自動的攔截action。
               所以當我們想用自定義的攔截器攔截action的時候,
               不能忘了主動地聲明引用這個defaultStack攔截器棧
             -->
            <interceptor-ref name="timer"></interceptor-ref>
        
            <!-- 節(jié)點配置
                name : result名稱 和Action中返回的值相同
                type : result類型 不寫則選用superpackage的type 
                struts-default.xml中的默認為dispatcher
             -->
         <result name="success" type="dispatcher">/talk.jsp</result>
         <!-- 參數(shù)設置 
             name:對應Action中的get/set方法 
         -->
         <param name="url">http://www.sina.com</param>
        </action>
        <!-- 替代全局屬性文件
        -->
        <constant name="structs.i18n.reload" value=""></constant>
    </package>
</struts>
最后編輯于
?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容