struts2.0 struts.xml和STRUTS的config.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> 


STRUTS的struts–config.xml詳解 



<?xml version=”1.0″ encoding=”UTF-8″?> 
<!DOCTYPE struts-config PUBLIC 
“-//Apache Software Foundation//DTD Struts Configuration 1.1//EN” 
“http://jakarta.apache.org/struts/dtds/struts-config.dtd”> 

<!– struts- config.xml中的元素必須按照上述doc指令中的dtd文檔定義順序書寫,本例即遵從了dtd定義順序 –> 

<!– struts-config是整個xml的根元素,其他元素必須被包含其內 –> 
<struts-config> 

<!– 
名稱:data-sources 
描述:data-sources元素定義了web App所需要使用的數據源 
數量:最多一個子元素:data-source 
–> 
<data-sources> 
<!– 
名稱:data-source 
描述:data-source元素定義了具體的數據源 
數量:任意多個 
屬性: 
@key:當需要配置多個數據源時,相當於數據源的名稱,用來數據源彼此間進行區別 
@type:可以使用的數據源實現的類,一般來自如下四個庫 
Poolman,開放源代碼軟件 
Expresso,Jcorporate 
JDBC Pool,開放源代碼軟件 
DBCP,Jakarta 
–> 
<data-source key=”firstOne” type=”org.apache.commons.dbcp.BasicDataSource”> 
<!– 
名稱:set-property 
描述:用來設定數據源的屬性 
屬性: 
@autoCommit:是否自動提交 可選值:true/false 
@description:數據源描述 
@driverClass:數據源使用的類 
@maxCount:最大數據源連接數 
@minCount:最小數據源連接數 
@user:數據庫用戶 
@password:數據庫密碼 
@url:數據庫url 
–> 
<set-property property=”autoCommit” value=”true”/> 
<set-property property=”description” value=”Hello!”/> 
<set-property property=”driverClass” value=”com.mysql.jdbc.Driver”/> 
<set-property property=”maxCount” value=”10″/> 
<set-property property=”minCount” value=”2″/> 
<set-property property=”user” value=”root”/> 
<set-property property=”password” value=”"/> 
<set-property property=”url” value=”jdbc:mysql://localhost:3306/helloAdmin”/> 
</data-source> 
</data-sources> 

<!– 
名稱:form-beans 
描述:用來配置多個ActionForm Bean 
數量:最多一個 
子元素:form-bean 
–> 
<form-beans> 
<!– 
名稱:form-bean 
描述:用來配置ActionForm Bean 
數量:任意多個 
子元素:form-property 
屬性: 
@className:指定與form-bean元素相對應的配置類,一般默認使用org.apaceh.struts.config.FormBeanConfig,如果自定義,則必須繼承 FormBeanConfig 
@name:必備屬性!爲當前form-bean制定一個全局唯一的標識符,使得在整個Struts框架內,可以通過該標識符來引用這個ActionForm Bean。 
@type:必備屬性!指明實現當前ActionForm Bean的完整類名。 
–> 
<form-bean name=”Hello” type=”myPack.Hello”> 
<!– 
名稱:form-property 
描述:用來設定ActionForm Bean的屬性 
數量:根據實際需求而定,例如,ActionForm Bean對應的一個登陸Form中有兩個文本框,name和password,ActionForm Bean中也有這兩個字段,則此處編寫兩個form-property來設定屬性 
屬性: 
@className:指定與form-property相對應的配置類,默認是org.apache.struts.config.FormPropertyConfig,如果自定義,則必須繼承FormPropertyConfig類 
@name:所要設定的ActionForm Bean的屬性名稱 
@type:所要設定的ActionForm Bean的屬性值的類 
@initial:當前屬性的初值 
–> 
<form-property name=”name” type=”java.lang.String”/> 
<form-property name=”number” type=”java.lang.Iteger” initial=”18″/> 
</form-bean> 
</form-beans> 

<!– 
名稱:global-exceptions 
描述:處理異常 
數量:最多一個 
子元素:exception 
–> 
<global-exceptions> 
<!– 
名稱:exception 
描述:具體定義一個異常及其處理 
數量:任意多個 
屬性: 
@className:指定對應exception的配置類,默認爲org.apache.struts.config.ExceptionConfig 
@handler:指定異常處理類,默認爲org.apache.struts.action.ExceptionHandler 
@key:指定在Resource Bundle種描述該異常的消息key 
@path:指定當發生異常時,進行轉發的路徑 
@scope:指定ActionMessage實例存放的範圍,默認爲request,另外一個可選值是session 
@type:必須要有!指定所需要處理異常類的名字。 
@bundle:指定資源綁定 
–> 
<exception 
key=”"hello.error 
path=”/error.jsp” 
scope=”session” 
type=”hello.HandleError”/> 
</global-exceptions> 

<!– 
名稱:global-forwards 
描述:定義全局轉發 
數量:最多一個 
子元素:forward 
–> 
<global-forwards> 
<!– 
名稱:forward 
描述:定義一個具體的轉發 
數量:任意多個 
屬性: 
@className:指定和forward元素對應的配置類,默認爲org.apache.struts.action.ActionForward 
@contextRelative:如果爲true,則指明使用當前上下文,路徑以“/”開頭,默認爲false 
@name:必須配有!指明轉發路徑的唯一標識符 
@path:必須配有!指明轉發或者重定向的URI。必須以”/”開頭。具體配置要與contextRelative相應。 
@redirect:爲true時,執行重定向操作,否則執行請求轉發。默認爲false 
–> 
<forward name=”A” path=”/a.jsp”/> 
<forward name=”B” path=”/hello/b.do”/> 
</global-forwards> 

<!– 
名稱:action-mappings 
描述:定義action集合 
數量:最多一個 
子元素:action 
–> 
<action-mappings> 
<!– 
名稱:action 
描述:定義了從特定的請求路徑到相應的Action類的映射 
數量:任意多個 
子元素:exception,forward(二者均爲局部量) 
屬性: 
@attribute:制定與當前Action相關聯的ActionForm Bean在request和session範圍內的名稱(key) 
@className:與Action元素對應的配置類。默認爲org.apache.struts.action.ActionMapping 
@forward:指名轉發的URL路徑 
@include:指名包含的URL路徑 
@input:指名包含輸入表單的URL路徑,表單驗證失敗時,請求會被轉發到該URL中 
@name:指定和當前Acion關聯的ActionForm Bean的名字。該名稱必須在form-bean元素中定義過。 
@path:指定訪問Action的路徑,以”/”開頭,沒有擴展名 
@parameter:爲當前的Action配置參數,可以在Action的execute()方法中,通過調用ActionMapping的getParameter()方法來獲取參數 
@roles:指定允許調用該Aciton的安全角色。多個角色之間用逗號分割。處理請求時,RequestProcessor會根據該配置項來決定用戶是否有調用該Action的權限 
@scope:指定ActionForm Bean的存在範圍,可選值爲request和session。默認爲session 
@type:指定Action類的完整類名 
@unknown:值爲true時,表示可以處理用戶發出的所有無效的Action URL。默認爲false 
@validate:指定是否要先調用ActionForm Bean的validate()方法。默認爲true 
注意:如上屬性中,forward/include/type三者相斥,即三者在同一Action配置中只能存在一個。 
–> 
<action path=”/search” 
type=”addressbook.actions.SearchAction” 
name=”searchForm” 
scope=”request” 
validate=”true” 
input=”/search.jsp”> 
<forward name=”success” path=”/display.jsp”/> 
</action> 
</action-mappings> 

<!– 
名稱:controller 
描述:用於配置ActionServlet 
數量:最多一個 
屬性: 
@bufferSize:指定上傳文件的輸入緩衝的大小.默認爲4096 
@className:指定當前控制器的配置類.默認爲org.apache.struts.config.ControllerConfig 
@contentType:指定相應結果的內容類型和字符編碼 
@locale:指定是否把Locale對象保存到當前用戶的session中,默認爲false 
@processorClass:指定負責處理請求的Java類的完整類名.默認org.apache.struts.action.RequestProcessor 
@tempDir:指定文件上傳時的臨時工作目錄.如果沒有設置,將才用Servlet容器爲web應用分配的臨時工作目錄. 
@nochache:true時,在相應結果中加入特定的頭參數:Pragma ,Cache-Control,Expires防止頁面被存儲在可數瀏覽器的緩存中,默認爲false 
–> 
<controller 
contentType=”text/html;charset=UTF-8″ 
locale=”true” 
processorClass=”CustomRequestProcessor”> 
</controller><!– 
名稱:message-resources 
描述:配置Resource Bundle. 
數量:任意多個 
屬性: 
@className:指定和message-resources對應的配置類.默認爲org.apache.struts.config.MessageResourcesConfig 
@factory:指定資源的工廠類,默認爲org.apache.struts.util.PropertyMessageResourcesFactory 
@key: 
@null: 
@parameter: 
–> 
<message-resources 
null=”false” 
parameter=”defaultResource”/> 
<message-resources 
key=”images” 
null=”false” 
parameter=”ImageResources”/> 

<!– 
名稱:plug-in 
描述:用於配置Struts的插件 
數量:任意多個 
子元素:set-property 
屬性: 
@className:指定Struts插件類.此類必須實現org.apache.struts.action.PlugIn接口 
–> 
<plug-in 
className=”org.apache.struts.validator.ValidatorPlugIn”> 
<!– 
名稱:set-property 
描述:配置插件的屬性 
數量:任意多個 
屬性: 
@property:插件的屬性名稱 
@value:該名稱所配置的值 
–> 
<set-property 
property=”pathnames” 
value=”/WEB-INF/validator-rules.xml,/WEB-INF/vlaidation.xml”/> 
</plug-in>
發佈了6 篇原創文章 · 獲贊 4 · 訪問量 2萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章