JSP 中 EL 表达式不能使用的问题

本贴最后更新于 1248 天前,其中的信息可能已经渤澥桑田

在 JSP2.0 中,增加了 EL 语言,可以通过 EL 语言,可以通过 EL 语言,实现获取数据,进一步将 scriptlet 代码从 JSP 页面中分离出来。

EL 语言给大家带来了方便,但有时,也会遇到 EL 表达式不能显示的情况,下面将列举几种 EL 表达式不能显示的情况及解决方案:

web.xml 中 Servlet 版本问题造成

WEB-INF/web.xml,web 应用的部署描述文件引用的是 servlet 规范的 2.3 版本或更早的版本(即 jsp1.2 或更早),则 jsp2.0 表达式语言自动在 web 应用中停用,注意里面的 version 属性应为 2.4 及以上版本。

如果是 2.3 版本,则 xml 指令和文档类型定义如下:

<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE web-app PUBLIC 
    "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
    "http://java.sun.com/dtd/web-app_2_3.dtd">

应为 2.4 版本:

<?xml version="1.0" encoding="ISO-8859-1"?>
<web-app xmlns="http://java.sun.com/xml/ns/j2ee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.4"
         xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
         http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">

web.xml 中停用了 jsp 表达式语言

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

这种情况的解决方法就是把 <el-ignored>true</el-ignored> 改为 <el-ignored>false</el-ignored>.

页面停用 jsp 表达式语言

<%@ page isELEnabled ="false"%>

解决方法:改为 <%@ page isELEnabled ="true"%>

2.4 版本默认支持 el 表达式,如果使用 2.5 版本,默认 el 表达式是关闭的,而且上面的 <%@ page isELEnabled ="true"%> 不能用了。

那么 jsp 页面里应该增加 <%@ page isELIgnored="false"%>

  • JSP
    16 引用 • 32 回帖
  • Java

    Java 是一种可以撰写跨平台应用软件的面向对象的程序设计语言,是由 Sun Microsystems 公司于 1995 年 5 月推出的。Java 技术具有卓越的通用性、高效性、平台移植性和安全性。

    3167 引用 • 8207 回帖 • 2 关注
  • EL
    3 引用 • 1 回帖

相关帖子

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...