最近在做的项目中,在jsp页面中经常会出现el表达式${}无效的情况,之前一直以为el表达式是无所不能不能的,现在才发现,他也是有局限性的,并不是所有的Servlet / JSP的版本默认都支持他。只有在Servlet 2.4 / JSP 2.0及以上的版本后,才默认支持el表达式的,下面是辨别jsp版本的方式(需要查看web.xml的头文件):
一、Servlet 2.4 / JSP 2.0:
<web-app version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd>
二、Servlet 2.3 / JSP 1.2:
<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd" >
在默认情况下,Servlet 2.3 / JSP 1.2是不支持EL表达式的,而Servlet 2.4 / JSP 2.0支持。
如果是在Servlet 2.3 / JSP 1.2下,将JSP页面的开头添加如下一句代码即可。
<%@ page isELIgnored="false" %>
如果是在Servlet 2.4 / JSP 2.0下,检查上面的这句代码里是否把isELIgnored设为了true,还有在web.xml中,是否将jsp-config标签里的jsp-property-group标签里的el-ignored设为了true。