struts2的工作原理與檔案結構

weixin_30924079發表於2020-04-04

 

 

struts2框架的工作原理:

Struts2的檔案詳解:

1. web.xml

  

  過濾器遇到.action字尾的請求就會攔截處理,當遇到.jsp .html等就會放行。


2. 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節點是struts2中元件化的方式 可以將每個功能模組獨立到一個xml配置檔案中 然後用include節點引用 -->
    <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>
        
        
        <!-- 全域性results配置 -->
        <global-results>
            <result name="input">/error.jsp</result>
        </global-results>
        
        <!-- Action配置 一個Action可以被多次對映(只要action配置中的name不同)
             name:action名稱
             class: 對應的類的路徑
             method: 呼叫Action中的方法名
        -->
        <action name="hello" class="com.kay.struts2.Action.LoginAction">
            <!-- 引用攔截器
                name:攔截器名稱或攔截器棧名稱
             -->
            <interceptor-ref name="timer"></interceptor-ref>
        
            <!-- 節點配置
                name : result名稱 和Action中返回的值相同
                type : result型別 不寫則選用superpackage的type struts-default.xml中的預設為dispatcher
             -->
         <result name="success" type="dispatcher">/talk.jsp</result>
         <!-- 引數設定 
             name:對應Action中的get/set方法 
         -->
         <param name="url">http://www.sina.com</param>
        </action>
    </package>
</struts>

 


3. struts.properties

  放置路徑與struts.xml相同(Java Resources-src中)

  

    關於配置的詳細說明:struts.properties配置詳解


 

轉載於:https://www.cnblogs.com/xingyazhao/p/6705415.html

相關文章