配置兩個 Package:struts-login (namespace="/login") 繼承 struts-show (namespace="/")。登入成功後使用 redirectAction 跳轉至 showUserInfo,運行正常但日誌報錯:「在 /login 命名空間中找不到 showUserInfo」。
redirectAction 預設在當前命名空間 (/login) 查找目標 Action。雖然 Package 繼承關係使 struts-login 可見 struts-show 的 Action 定義,但 redirectAction 的命名空間解析邏輯不受 Package 繼承影響,仍以當前請求的 namespace 為準。
在 redirectAction 結果中顯式指定目標命名空間:
<result name="success" type="redirectAction">
<param name="actionName">showUserInfo</param>
<param name="namespace">/</param> <!-- 關鍵:指定目標 Action 所在命名空間 -->
</result>