解决方案:在jsp文件的page标签中加上"isELIgnored=false"即可,具体如下所示:
<%@ page contentType="text/html;charset=UTF-8" language="java" isELIgnored="false" %>
原因:JSP2.0中支持EL表达式,老版本不支持,如果设定"isELIgnored=true"值为true,那么jsp中的表达式将被当成字符串处理。
附:旧版本的web.xml和新版本的web.xml文件的区别:
新版本的web.xml采用schema约束:
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
version="3.1">
</web-app>
旧版本的web.xml文件采用DTD约束:
!DOCTYPE web-app PUBLIC
"-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
"http://java.sun.com/dtd/web-app_2_3.dtd" >
<web-app>
<display-name>Archetype Created Web Application</display-name>
</web-app>
附:如果el表达式在jsp文件中没有提示,或者不能使用,例如:${pageContext.request.contextPath} 在Jsp页面报错。
解决办法:
将jsp-api.jar 和 servlet-api.jar 一起添加到项目中,这两个jar包在tomcat的lib文件夹下可找到。
借鉴:${pageContext.request.contextPath} 在Jsp页面报错