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

Tomcat 運行 Struts2 JSP 報 404 錯誤:basepath 未定義導致標籤解析失敗

     編輯:程式設計綜合問答

錯誤現象

JSP 頁面使用 ``,運行報 404,同目錄 `index.jsp` 正常。

根因

JSP 編譯階段找不到變量 `basePath`,導致 `` 標籤輸出為空或異常,瀏覽器解析相對路徑錯誤,最終請求路徑不匹配 Struts2 Action 映射。

修正代碼


<%@ page contentType="text/html;charset=UTF-8" %>
<%
    String path = request.getContextPath();
    String basePath = request.getScheme() + "://" + 
                      request.getServerName() + ":" + 
                      request.getServerPort() + path + "/";
%>
<!DOCTYPE html>
<html>
<head>
    <base href="<%=basePath%>"> <!-- 此處 basePath 已在上方腳本片段定義 -->
    ...

Struts2 配置檢查清單

  • `struts.xml` 中 `` namespace 必須與 Action 映射一致。
  • Action 配置:`/jsp/login.jsp`,result 路徑以 `/` 開頭表示 WebRoot 絕對路徑。
  • 確保 `web.xml` 中 `StrutsPrepareAndExecuteFilter` 映射 `/*` 在其他 Filter 之前。

調試技巧

  1. 查看 Tomcat `localhost..log` 完整異常堆棧。
  2. 2. 瀏覽器 F12 Network 面板查看實際請求 URL 與響應碼。 3. 臨時在 JSP 頂部 `<%= "basePath=" + basePath %>` 打印驗證變量是否正確輸出。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved