首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> Java 相關知識

Struts 1.x 系列教程(17):IncludeAction 與 ForwardAction 包含/轉向資源

     編輯:Java 相關知識

前言

Struts 提供兩個內建 Action 類別,分別對應 JSP 的 <jsp:include>(包含)與 <jsp:forward>(轉向),但強制經由 Struts 控制器處理,符合框架統一入口原則。

一、IncludeAction:包含資源

配置範例

<action path="/include"
        type="org.apache.struts.actions.IncludeAction"
        input="/firstValidator.jsp"
        validate="false"
        name="firstValidatorForm"
        parameter="/firstValidator.jsp" />

關鍵點

  1. validate="false":被包含頁面若使用 FormBean 驗證,包含動作本身不應觸發驗證(否則表單欄位皆空導致驗證失敗)。
  2. parameter:指定要包含的資源路徑。
  3. 編碼問題:IncludeAction 效果等同 <jsp:include>,無法修改回應標頭 Content-Type。若被包含頁有中文,需在過濾器(如 EncodingFilter)設定 response.setCharacterEncoding("GBK"),或自行繼承 IncludeAction 在 execute() 中設定編碼。

測試

https://localhost:8080/samples/include.do

二、ForwardAction:轉向資源

配置範例

<action path="/forward"
        type="org.apache.struts.actions.ForwardAction"
        input="/firstValidator.jsp"
        validate="false"
        name="firstValidatorForm"
        parameter="/firstValidator.jsp" />

差異優勢

  • 轉向後由目標資源直接回應,**可正常設定 Content-Type 編碼**無額外處理。
  • 適用於「經由 Struts 入口進行權限檢查、記錄日誌後,再轉向靜態頁或 JSP」的情境。

測試

https://localhost:8080/samples/forward.do

比較總結

特性IncludeActionForwardAction
對應 JSP 動作<jsp:include><jsp:forward>
請求流向包含後繼續執行轉向後結束
可修改回應標頭否是(由目標資源控制)
典型用途頁面片段組合流程控制、權限攔截後轉向

總結

善用 IncludeAction 與 ForwardAction 可將靜態資源包含/轉向納入 Struts 控制流程,配合 validate="false" 避免誤觸發表單驗證,是整合舊有 JSP 頁面的實用技巧。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved