首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計綜合問答

Struts2 登入頁面跳轉失敗:result 映射與命名空間配置錯誤排查

     編輯:程式設計綜合問答

Struts2 專案登入動作執行後無法正確跳轉至成功頁面,常見原因包括:struts.xml 中 result 路徑錯誤、namespace 不匹配、Action 類別未實作正確介面、攔截器棧缺失。

標準 struts.xml 配置範例

<struts>
    <package name="default" namespace="/" extends="struts-default">
        <action name="login" class="com.example.action.LoginAction" method="execute">
            <result name="success">/home.jsp</result>
            <result name="input">/login.jsp</result>
            <result name="error">/error.jsp</result>
        </action>
    </package>
</struts>

關鍵檢查點

  1. namespace 與 URL 對應:
    若 namespace="/user",則訪問 URL 為 /user/login.action。預設 namespace="/" 對應根路徑。
  2. result 路徑:
    以 / 開頭表示相對 Web 應用根目錄(/home.jsp),不以 / 開頭則相對當前 namespace。建議統一用絕對路徑。
  3. Action 返回值與 result name 一致:
    return "success"; 需對應 <result name="success">...。
  4. extends="struts-default":繼承預設攔截器棧,包含 params、validation、workflow 等,否則表單參數無法自動注入。
  5. Action 類別:實作 Action 介面或繼承 ActionSupport,提供 execute() 方法。

常見錯誤現象與對策

完整參考範例

對照標準配置逐項核對,能快速定位 Struts2 跳轉失敗的根因。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved
現象可能原因解決
HTTP 404result 路徑錯、namespace 不對、Action 未映射檢查 struts.xml、啟用 devMode 看日誌
無限迴圈跳回登入頁validation 失敗回傳 input、攔截器攔截檢查 validate() 邏輯、確認 input result 存在
表單參數為 null未繼承 ActionSupport、缺少 params 攔截器extends="struts-default"、提供 setter