在 Struts2 配置中使用 redirectAction 類型重定向到另一個 Action 並傳遞參數:
<action name="police_update" class="..." method="update">
<result name="success" type="redirectAction">
<param name="actionName">police_lookInfo</param>
<param name="policeId">${policeId}</param>
</result>
</action>
目標 Action police_lookInfo 及當前 Action 均有 policeId 的 getter/setter(類型為 long),但參數始終無法傳遞過去。
結果類型名稱拼寫錯誤。Struts2 內建的重定向到 Action 的結果類型名稱為 redirect-action(含連字符),而非 redirectAction(駝峰)。
當使用錯誤類型名時,框架無法識別該結果類型,會回退到默認的分發器行為,導致參數解析與傳遞邏輯不生效。
<result name="success" type="redirect-action">
<param name="actionName">police_lookInfo</param>
<param name="policeId">${policeId}</param>
</result>
redirect-action 會生成 HTTP 302 重定向,瀏覽器地址欄 URL 會變化;police_lookInfo.action?policeId=123);Struts2 許多內建結果類型、攔截器名稱均採用連字符分隔單詞(如 redirect-action, chain, json 等),切勿按 Java 駝峰習慣拼寫。查閱官方文檔或 struts-default.xml 確認標準名稱。