Struts2配置
- 2019 年 10 月 5 日
- 筆記
Struts2配置
- Struts2配置
- 結果頁配置
1
Struts2配置
配置文件載入順序
Struts2中有很多配置文件可以去配置常量,對同一個量在不同配置文件都配置了,那麼生效的肯定是最後載入的,因此需要知道配置文件的載入順序
1.前端控制器(過濾器)類的初始化方法

2.得到dispater的initDispatcher方法

3.初始化dispater

可以得出配置文件載入順序
init_DefaultProperties() | default.properties |
|---|---|
init_TraditionalXmlConfigurations(); | struts-default.xmlstruts-plugin.xmlstruts.xml |
init_LegacyStrutsProperties(); | struts.properties |
init_CustomConfigurationProviders(); | 載入配置提供類 |
init_FilterInitParameters() ; | 載入web.xml中過濾器初始化參數 |
init_AliasStandardObjects() ; | 載入Bean對象 |
常用的配置文件載入順序(從上往下)
default.properties
struts-default.xml
struts-plugin.xml
struts.xml
struts.properties
web.xml
struts.xml

根元素struts
package標籤
- package於action的關係就像是包和類的關係,不同的模組不同的package,每個package下可以有很多action
- name屬性:包的名稱在同一個項目不重複即可
- extends屬性:繼承哪個package默認是struts-default它當中定義了很多結果類型和攔截器,只有填上它才有後面的一些類型自動轉化等功能
- namespace屬性:它和包名共同決定了訪問路徑,當它是空時只要滿足最後的包名就能訪問到當前包,不為空則要寫上namespace與包名共同構成的別url才能訪問到
- abstract屬性:開啟後當前包就不能被使用,只能用來被繼承
action標籤
- 首先就是配置action類,然後就是標籤屬性
name | 與namespace共同決定訪問路徑 |
|---|---|
class | Action類的全路徑 |
method | 執行Action中的哪個方法的方法名,默認值execute |
converter | 用來自定義類型轉換器,一般不設置,內部提供的轉換器已經夠用 |
常量配置
在在default.properties有很多常量的配置
(截取一段)

比如有個常量struts.i18n.encoding=UTF-8
在Struts2中post請求的中文亂碼問題不用再去在程式碼中設置
一些時候這些常量的值我們需要修改,但是在default.properties中設置的常量我們通常不能去直接修改
我們去修改有三種方式:struts.xml、struts.properties、web.xml
一般都是使用struts.xml所以不會單獨再去建struts.properties。
struts.xml中修改
通過constant標籤,name和value則是default.properties的等號兩邊

web.xml中修改
web.xml這些常量配置在過濾器中param-name中為常量名,para-value想要設的值,注意載入順序

外部導入include
可以通過include標籤去導入其他配置文件內容,這樣就不用都寫著struts.xml中而是各寫各的最後通過include放到struts.xml中


2
結果頁配置
有的請求需要返回頁面時,就可以配置結果頁


請求訪問到action類後,得到返回字元串返回值就會到當前的action標籤去找有沒有name匹配的result,沒用就會到全局results下去找。最後返回指定的頁面