Struts 提供兩個內建 Action 類別,分別對應 JSP 的 <jsp:include>(包含)與 <jsp:forward>(轉向),但強制經由 Struts 控制器處理,符合框架統一入口原則。
<action path="/include"
type="org.apache.struts.actions.IncludeAction"
input="/firstValidator.jsp"
validate="false"
name="firstValidatorForm"
parameter="/firstValidator.jsp" />
IncludeAction 效果等同 <jsp:include>,無法修改回應標頭 Content-Type。若被包含頁有中文,需在過濾器(如 EncodingFilter)設定 response.setCharacterEncoding("GBK"),或自行繼承 IncludeAction 在 execute() 中設定編碼。https://localhost:8080/samples/include.do
<action path="/forward"
type="org.apache.struts.actions.ForwardAction"
input="/firstValidator.jsp"
validate="false"
name="firstValidatorForm"
parameter="/firstValidator.jsp" />
https://localhost:8080/samples/forward.do
| 特性 | IncludeAction | ForwardAction |
|---|---|---|
| 對應 JSP 動作 | <jsp:include> | <jsp:forward> |
| 請求流向 | 包含後繼續執行 | 轉向後結束 |
| 可修改回應標頭 | 否 | 是(由目標資源控制) |
| 典型用途 | 頁面片段組合 | 流程控制、權限攔截後轉向 |
善用 IncludeAction 與 ForwardAction 可將靜態資源包含/轉向納入 Struts 控制流程,配合 validate="false" 避免誤觸發表單驗證,是整合舊有 JSP 頁面的實用技巧。