Struts2配置

  • 2019 年 10 月 5 日
  • 筆記

Struts2配置

  1. Struts2配置
  2. 結果頁配置

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下去找。最後返回指定的頁面

Tags: