解决jsp开发中不支持EL问题今天遇到了一个莫名其妙的问题,就是在使用MyEclipse5.5或6.0时遇上了解析不到EL表达式的问题。经过好几
个小时的琢磨终于发现了,给大家share一下:
问题就出在建Web Project的时候web.xml声明上。
web.xml声明部分一般分为如下版本的xsd,
web-app_2_2.dtd
web-app_2_3.dtd
web-app_2_4.xsd
web-app_2_5.xsd
更详细的列出各版本web.xml声明部分吧,如下:
web-app_2_2.dtd
<?xml version=
"1.0"
encoding=
"UTF-8"
?>
<!DOCTYPE web-app PUBLIC
"-//Sun Microsystems, Inc.//DTD Web Application
2.2//EN"
"http://java.sun.com/dtd/web-app_2_2.dtd"
>
web-app_2_3.xsd
<?xml version=
"1.0"
encoding=
"UTF-8"
?>
<!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_2_4.xsd
<?xml version=
"1.0"
encoding=
"UTF-8"
?>
<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-app_2_5.xsd
<?xml version=
"1.0"
encoding=
"UTF-8"
?>
<web-app xmlns=
"http://java.sun.com/xml/ns/javaee"
xmlns:xsi=
"http://www.w3.org/2001/XMLSchema-instance"
version=
"2.5"
xsi:schemaLocation=
"http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd
"
>
注
意!! 其中servlets 2.4(我没记错的话JSP
2.0出来之后的第一个版本),这个版本的isELIgnored默认设置为false。所以使用web.xml里用web-app_2_4.xsd声明
的时候在JSP页面不用特意声明。 servlets 2.4EL可以直接使用。
而其它的不行必须手工申明.
确定web.xml里的xsd版本之后(如果不是servlets 2.4)一定要在JSP的声明(<%@page
%>)部分加一行,如下:
<%@ page isELIgnored="false" %>
这样设为false才能解析EL表达式。
还用一个最简单的解决方法是,直接在web.xml中将servlets 2.4xsd的引用替换你现在的。即用以下引用替换.
<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
"
>
原文出处:http://useryouyou.javaeye.com/blog/603191
posted on 2010-04-22 14:29
jeanx 阅读(286)
评论(0) 编辑 收藏