1. 程式人生 > >Struts2常見配置(草稿)

Struts2常見配置(草稿)

parameter AC ali 打印 註意 struts2的 standard 瀏覽器 而是

Struts2框架配置文件加載的順序(了解加載配置文件的順序,重點掌握struts.xml配置文件)

1.Struts2框架的核心是StrutsPrepareAndExecuteFilter過濾器,該過濾器有兩個功能

* Prepare -- 預處理,加載核心的配置文件

* Execute -- 執行,讓部分攔截器執行

2.目的:要了解Struts2的框架默認加載了哪些配置文件的信息,有一些重點的配置文件的信息要記住。還要了解配置文件加載的順序。以後需要知道在哪個配置文件中來編寫配置文件

2.StrutsPrepareAndExecuteFilter過濾器會加載哪些配置文件呢?

* 通過源代碼可以看到具體加載的配置文件和加載配置文件的順序

* init_DefaultProperties(); // [1] -- 加載org/apache/struts2/default.properties

* init_TraditionalXmlConfigurations(); // [2] -- 加載struts-default.xml,struts-plugin.xml,struts.xml

* init_LegacyStrutsProperties(); // [3] -- 加載自定義的struts.properties.

* init_CustomConfigurationProviders(); // [5] -- 加載用戶自定義配置提供者.

* init_FilterInitParameters() ; // [6] -- 加載web.xml

* init_AliasStandardObjects() ; // [7] -- 加載Bean的配置.

3.重點了解的配置文件

* default.properties -- 在org/apache/struts2/目錄下,代表的是配置的是Struts2的常量的值

* struts-default.xml -- 在Struts2的核心包下,代表的是Struts2核心功能的配置(Bean、攔截器、結果類型等)

* struts.xml -- 重點中的重點配置,代表WEB應用的默認配置,在工作中,基本就配置它就可以了!!(可以配置常量)

* web.xml -- 配置前端控制器(可以配置常量)

* 註意:

* 前3個配置文件是struts2框架的默認配置文件,基本不用修改。

* 後3個配置文件可以允許自己修改struts2的常量。但是有一個特點:後加載的配置文件修改的常量的值,會覆蓋掉前面修改的常量的值。

4.總結(重點掌握的配置文件)

* 先加載default.properties文件,在org/apache/struts2/default.properties文件,都是常量。

* 又加載struts-default.xml配置文件,在核心的jar包最下方,struts2框架的核心功能都是在該配置文件中配置的。

* 再加載struts.xml的配置文件,在src的目錄下,代表用戶自己配置的配置文件

* 最後加載web.xml的配置文件

* 後加載的配置文件會覆蓋掉之前加載的配置文件(在這些配置文件中可以配置常量)

struts.xml配置文件的常見配置(重點掌握開發中常用的配置方式)

1.struts.xml的配置文件是咱們以後開發中最常見的配置,所以它的配置文件需要大家重點掌握!!

* <package>標簽,如果要配置<Action>的標簽,那麽必須要先配置<package>標簽,代表的包的概念。

* 包含的屬性

* name -- 包的名稱,要求是唯一的,管理action配置。

* extends -- 繼承,可以繼承其他的包,只要繼承了,那麽該包就包含了其他包的功能,一般都是繼承struts-default

* namespace -- 名稱空間,一般與<action>標簽中的name屬性共同決定訪問路徑(通俗話:怎麽來訪問action),常見的配置如下

* namespace="" -- 默認的名稱空間(訪問的方式和namespace="/"是一樣的)

* namespace="/" -- 根名稱空間

* namespace="/aaa" -- 帶有名稱的名稱空間

* abstract -- 抽象的。這個屬性基本很少使用,值如果是true,那麽編寫的包是被繼承的。

* <action>標簽

* 代表配置action類,包含的屬性

* name -- 和<package>標簽的namespace屬性一起來決定訪問路徑的。

* class -- 配置Action類的全路徑(默認值是ActionSupport類)

* method -- Action類中執行的方法,如果不指定,默認值是execute.

* <result>標簽

* action類中方法執行,返回的結果跳轉的頁面

* name -- 結果頁面邏輯視圖名稱

* type -- 結果類型(默認值是轉發,也可以設置其他的值)

2.Action的默認處理類(了解)

* 如果在<action>標簽中,沒有指定具體的Action類,那麽Struts2的框架中是有默認值的。

* 例如

<action name="delete">

<result>/pages/success.jsp</result>

</action>

* 上面這段配置,沒有指定具體的Action類,那麽在地址欄上敲鏈接訪問,程序也不會報錯,而是會跳轉到success.jsp的頁面。說明默認的Action類執行了。

* 打開struts-default.xml,在配置文件的最下面,有一段配置

* <default-class-ref class="com.opensymphony.xwork2.ActionSupport" /> 該類就是默認的Action處理類。

3.默認的Action和Action默認的處理類(了解)

* 聽名稱容易混淆,需要大家區分這一類的問題

* 默認的Action

* 在地址欄上輸入一個不存在的action請求,程序會報404的異常。

* 但是在<package>標簽中通過<default-action-ref name="指定action的標簽的name屬性的值"></default-action-ref>來該請求。

* Action默認處理類

* 在地址欄上輸入一個正確的action請求,但是<action>標簽中的class屬性沒有寫具體的Action類

* 在<package>標簽中通過<default-class-ref class="指定action類的全路徑"></default-class-ref>

4.package標簽中配置文件出現是有順序的

Struts2配置常量(重點掌握怎麽編寫常量,了解一些常見的常量)

1.可以在Struts2框架中的哪些配置文件中配置常量?

* struts.xml(必須要掌握,開發中基本上就在該配置文件中編寫常量)

* <constant name="key" value="value"></constant>

* web.xml

* 在StrutsPrepareAndExecuteFilter配置文件中配置初始化參數

* 註意:後加載的配置的文件的常量會覆蓋之前加載的常量!!!!

2.需要大家了解的常量

* struts.i18n.encoding=UTF-8 -- 指定默認編碼集,作用於HttpServletRequest的setCharacterEncoding方法

* struts.action.extension=action,, -- 該屬性指定需要Struts 2處理的請求後綴,該屬性的默認值是action,即所有匹配*.action的請求都由Struts2處理。如果用戶需要指定多個請求後綴,則多個後綴之間以英文逗號(,)隔開

* struts.serve.static.browserCache=true -- 設置瀏覽器是否緩存靜態內容,默認值為true(生產環境下使用),開發階段最好關閉

* struts.configuration.xml.reload=false -- 當struts的配置文件修改後,系統是否自動重新加載該文件,默認值為false(生產環境下使用),開發階段最好打開

* struts.devMode = false -- 開發模式下使用,這樣可以打印出更詳細的錯誤信息

指定多個struts的配置文件(了解)

1.在大部分應用裏,隨著應用規模的增加,系統中Action的數量也會大量增加,導致struts.xml配置文件變得非常臃腫。為了避免struts.xml文件過於龐大、臃腫,提高struts.xml文件的可讀性,我們可以將一個struts.xml配置文件分解成多個配置文件,然後在struts.xml文件中包含其他配置文件。

2.可以在<package>標簽中,使用<include>標簽來引入其他的struts_xx.xml的配置文件。例如:

<struts>

<include file="struts-part1.xml"/>

<include file="struts-part2.xml"/>

</struts>

3.註意註意註意(重要的事情說三遍):<include file="cn/itcast/demo2/struts-part1.xml"/>

Struts2常見配置(草稿)