一使用IncludeAction類包含Web資源
雖然在JSP頁面中可以使用<jspinclude>標簽包含另一個Web資源但Struts框架提倡在包含Web資源時應先經過Struts控制器處理後再由Struts控制器負責包含Web資源orgapachestrutsactionsIncludeAction類提供了包含其他Web資源的功能使用IncludeAction類要在strutsconfigxml中配置<action>元素配置IncludeAction類的代碼如下
<action path=/include type=orgapachestrutsactionsIncludeAction
input=/firstValidatorjsp validate=false
name=firstValidatorForm parameter=/firstValidatorjsp />
在配置上面代碼時應注意兩點
firstValidatorjsp頁面使用了firstValidatorForm進行數據驗證所有應將<action>元素的validate屬性設為false否則在運行include動作時就會進行驗證在這時firstValidatorForm中的所有屬性都沒有被賦值所以每個屬性都無法通過驗證讀者可以將validate屬性設為true看看會發生什麼情況
IncludeAction類的功能和效果與<jspinclude>標簽完全一樣這就意味著在IncludeAction包含的其他Web資源中無法改變響應信息頭這樣就無法改變ContentType字段的值因此按著上面的設置來運行程序所有的中文信息會顯示亂碼解決的方法有很多如可以自己實現一個IncludeAction類的子類在子類的execute方法中設置ContentType的值或都更簡單的方法是在過濾器(EncodingFilter)中加入如下的代碼
responsesetCharacterEncoding(GBK);
在IE中輸入可訪問include動作
雖然在JSP頁面中可以使用<jspforward>標簽把請求轉發給另一個Web資源但Struts框架提倡在轉發Web資源時應先經過Struts控制器處理後再由Struts控制器轉發Web資源orgapachestrutsactionsForwardAction類提供了轉發其他Web資源的功能使用ForwardAction類要在strutsconfigxml文件中配置<action>元素下面的代碼演示了如何在<action>元素中使用ForwardAction類來包含其他的Web資源
<action path=/forward type=orgapachestrutsactionsForwardAction
input=/firstValidatorjsp validate=false
name=firstValidatorForm parameter=/firstValidatorjsp />
由於經過轉發的Web資源可以改變ContentType字段的值因此使用ForwardAction類進行轉發時無需再另外改變ContentType字段的值(因為在firstValidatorjsp頁面中已經設置了ContentType的值)
在IE中輸入可訪問forward動作
From:http://tw.wingwit.com/Article/program/Java/ky/201311/28191.html