上网搜索了一下原因,原来是Servlet版本的问题。原来Servlet中可以设定是否解析EL表达式,只有2.4版本的Servlet默认是解析EL表达式的,而其他版本是默认不解析EL表达式,查了一下程序,果然用的不是2.4版本。于是把web.xml中使用的2.5版本的Servlet改成了2.4版本的。
<web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" >
替换成
<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">
重新部署 启动后就可以解析EL表达式了
当然 其他版本的Servlet只是默认不解析EL表达式 但是在需要解析的JSP页面
可以通过增加
<%@page ELIgnored="false"%>
来显式解析JSP页面中的EL表达式