日期:2014-05-16  浏览次数:20492 次

JSP中EL表达式无效的问题
确定用的Servlet / JSP的版本,查看web.xml的开头部分,如果有以下内容,表示是Servlet 2.4 / JSP 2.0。

1.<web-app version="2.4"  
2.         xmlns="http://java.sun.com/xml/ns/j2ee"  
3.         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  
4.         xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee 
5.         http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">  
如果有以下内容,表示是Servlet 2.3 / JSP 1.2。


1.2.  "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" 
1.  "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页面的开头添加如下一句代码即可。

1.<%@ page isELIgnored="false" %>  
如果是在Servlet 2.4 / JSP 2.0下,检查上面的这句代码里是否把isELIgnored设为了true,还有在web.xml中,是否将jsp-config标签里的jsp-property-group标签里的el-ignored设为了true。


最终解决方法是,在MyEclipse 中建 webproject /时,使用j2ee 1.4 选择jstl 增加为1.1
如果是使用j2ee 1.5 发布系统时,jstl 是无法识别,要重新放至发布的web 系统 的lib 中。如果是用struts 或struts 2 的标签时 或jsf 时,那可以用j2ee 5  。