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

JSP 不支援 EL 表達式?三種解決方案徹底修復

     編輯:關於JSP

EL 表達式失效根因與解決方案

JSP 頁面出現 ${expr} 原樣輸出而非求值,通常是 web.xml Servlet 版本聲明過低或配置缺失導致。本文提供三種針對性修復方案。

根因分析

  • Servlet 2.3 / JSP 1.2(DTD 聲明):預設關閉 EL 支援。
  • Servlet 2.4 / JSP 2.0(XSD 聲明):預設開啟 EL 支援(isELIgnored="false")。
  • Servlet 2.5+:預設開啟,但若 web.xml 版本聲明為 2.3 或缺失 jsp-config,仍可能被關閉。

方案一:升級 web.xml 至 Servlet 2.4+(推薦)

<web-app version="2.4"
    xmlns="https://java.sun.com/xml/ns/j2ee"
    xmlns:xsi="https://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="https://java.sun.com/xml/ns/j2ee 
    https://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
  ... 
</web-app>

或 Servlet 2.5:

<web-app version="2.5"
    xmlns="https://java.sun.com/xml/ns/javaee"
    xmlns:xsi="https://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="https://java.sun.com/xml/ns/javaee 
    https://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
</web-app>

修改後重啟應用,EL 即刻生效,無需修改任何 JSP。

方案二:單頁面啟用(頁面級)

<%@ page isELIgnored="false" %>

放在 JSP 頂部,僅對當前頁生效,適合老專案局部遷移。

方案三:全域啟用(專案級)

在 web.xml 中添加 jsp-config:

<jsp-config>
  <jsp-property-group>
    <url-pattern>*.jsp</url-pattern>
    <el-ignored>false</el-ignored>
  </jsp-property-group>
</jsp-config>

對所有 .jsp 生效,不改動 Servlet 版本聲明。

版本對照快查表

web.xml 聲明Servlet 版本JSP 版本EL 預設
DTD 2.2/2.32.31.2忽略 (false)
XSD 2.42.42.0啟用 (true)
XSD 2.5/3.0/3.12.5/3.0/3.12.1/2.2/2.3啟用 (true)

排查清單

  1. 確認 web.xml 根元素版本 ≥ 2.4。
  2. 若版本正確仍失效,檢查是否有 <jsp-config><el-ignored>true</el-ignored> 覆蓋。
  3. Tomcat 7/8/9/10 均支援上述方案,無容器差異。

建議統一採用方案一(升級版本聲明),一勞永逸且符合現代規範。

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