在 Struts1 框架中,需要從一個 Action 跳轉到另一個 Action 並傳遞參數,限制條件:不使用 JavaScript,不在前端頁面傳參,必須在後台 Java 代碼中完成參數傳遞。
利用 HttpServletRequest 的請求域(Request Scope)屬性傳遞數據。
// 在源 Action 中
request.setAttribute("paramName", paramValue);
// 配置 struts-config.xml 中的 forward 為另一個 Action 的路徑
return mapping.findForward("targetAction");
// 在目標 Action 中
String value = (String) request.getAttribute("paramName");
Struts1 的 ActionForward 默認使用 RequestDispatcher.forward() 進行服務器端轉發,此過程中請求對象(request)保持不變,因此在源 Action 中設置的屬性在目標 Action 中可直接獲取。這符合「後台傳參、無前端參與」的需求。