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

Struts 2 標籤庫導致 JSP 500 錯誤常見原因:標籤庫引入、版本衝突與 web.xml 配置

     編輯:程式設計綜合問答

常見錯誤堆疊

org.apache.jasper.JasperException: The absolute uri: https://struts.apache.org/tags-struts cannot be resolved
// 或
java.lang.NoClassDefFoundError: org/apache/struts2/components/Component

排查清單

  1. 標籤庫宣告正確:
    <%@ taglib prefix="s" uri="/struts-tags" %>  // Struts 2.3+ 標準 URI
    // 舊版可能為 https://struts.apache.org/tags-struts
    
  2. struts2-core 版本與標籤庫 URI 對應:struts2-core-2.5.x.jar 內含 /struts-tags;若專案混雜多版本 jar,會導致類別衝突。
  3. web.xml Filter 映射:
    <filter>
      <filter-name>struts2</filter-name>
      <filter-class>org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter</filter-class>
    </filter>
    <filter-mapping>
      <filter-name>struts2</filter-name>
      <url-pattern>/*</url-pattern>
    </filter-mapping>
    
    確認 filter-class 與 Struts 版本對應(2.5+ 用 StrutsPrepareAndExecuteFilter)。
  4. JSP 編譯錯誤:查看 Tomcat work/Catalina/localhost/.../org/apache/jsp/... 產生的 Servlet 原始碼,定位錯誤行。
  5. 依賴衝突:mvn dependency:tree | grep struts 檢查是否有多版本,統一版本並排除傳遞依賴。

快速驗證

// 最簡 JSP 測試
<%@ taglib prefix="s" uri="/struts-tags" %>
<s:property value="'Hello Struts'" />

若此頁正常,說明標籤庫載入無誤,錯誤在具體業務頁面的標籤用法或 Action 資料。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved