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

Struts2 Result 跳轉 JSP 圖片不顯示:相對路徑解析失敗

     編輯:程式設計綜合問答

現象

直接訪問 JSP 圖片正常,通過 Action 結果跳轉同一 JSP 圖片 404。瀏覽器開發者工具 Network 面板可見圖片請求 URL 錯誤。

根本原因

Struts2 默認使用轉發 (dispatcher) 到 JSP。瀏覽器地址欄仍顯示 Action URL (如 /app/user/list.action),JSP 內相對路徑 <img src="images/logo.png"> 會被瀏覽器解析為 /app/user/images/logo.png,實際資源在 /app/images/logo.png。

解決方案

方案一:使用絕對路徑(推薦)

<img src="<%=request.getContextPath()%>/images/logo.png" alt="Logo">
<!-- 或 JSTL -->
<img src="<c:url value='/images/logo.png'/>" alt="Logo">

方案二:HTML Base 標籤

<head>
    <base href="<%=request.getContextPath()%>/">
</head>

頁面內所有相對鏈接自動以 contextPath 為基準。

方案三:重定向而非轉發

<result name="success" type="redirect">/pages/target.jsp</result>

瀏覽器地址變為 JSP 真實路徑,相對路徑正常解析。缺點:請求屬性丟失,需用 Session/Flash 傳值。

調試檢查清單

  1. F12 Network 面板查看圖片請求的實際 URL。
  2. 確認圖片物理路徑與 Web 應用映射關係。
  3. 檢查 web.xml 中 DefaultServlet 靜態資源映射是否正確。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved