锁定老帖子 主题:JSP页面EL表达式无效的问题
精华帖 (0) :: 良好帖 (1) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2008-01-13
今天遇到了一个莫名其妙的问题。刚下载Eclipse3.3+MyEclipse6.0体验的过程中,遇上了解析不到EL表达式的问题。经过好几个小时的琢磨终于发现了,给大家share一下: 问题就出在建Web Project的时候web.xml声明上。 web.xml声明部分一般分为如下版本的xsd, web-app_2_2.xsd web-app_2_3.xsd web-app_2_4.xsd web-app_2_5.xsd 更详细的列出各版本web.xml声明部分吧,如下: web-app_2_2.xsd <?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"> 确定web.xml里的xsd版本之后一定要在JSP的声明(<%@page %>)部分加一行,如下: <%@ page isELIgnored="false" %> 这样设为false才能解析EL表达式。 经过各版本的test之后.... 注意!! 其中servlets 2.4(我没记错的话JSP 2.0出来之后的第一个版本),这个版本的isELIgnored默认设置为false。所以使用web.xml里用web-app_2_4.xsd声明的时候在JSP页面不用特意声明。 下面是官方Documention中isELIgnored Attribute的详解: The isELIgnored Attribute • Format – <%@ page isELIgnored="false" %> – <%@ page isELIgnored="true" %> Purpose – To control whether the JSP 2.0 Expression Language (EL) is ignored (true) or evaluated normally (false). • Notes – If your web.xml specifies servlets 2.3 (corresponding to JSP 1.2) or earlier, the default is true • But it is still legal to change the default—you are permitted to use this attribute in a JSP-2.0-compliant server regardless of the web.xml version. – If your web.xml specifies servlets 2.4 (corresponding to JSP 2.0) or earlier, the default is false 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2008-01-13
直接在web.xml里面设置ELIgnore不好吗?
我记得是有这个配制项的,这样就不必每个jsp页面都设置一次了。 |
|
返回顶楼 | |
发表时间:2008-01-13
你说的这个web.xml里确实有jsp-config的属性..见识,谢谢!
于是刚才自己试了一下,光web.xml里写 <jsp-config> <jsp-property-group> <url-pattern>*.jsp</url-pattern> <el-ignored>true</el-ignored> <!-- <el-ignored>false</el-ignored> --> </jsp-property-group> </jsp-config> 仍然没反应.. 在网上也找了找,结果有些人说是Tomcat里web.xml和jsp页面上都得声明,大概是这意思。 skydream有更详细有效的配置方法吗? |
|
返回顶楼 | |
发表时间:2008-01-14
web.xml里面有没有
<taglib><taglib-uri>/WEB-INF/jstl/c.tld</taglib-uri> <taglib-location>/WEB-INF/jstl/c.tld</taglib-location></taglib> 这样的定义? |
|
返回顶楼 | |
发表时间:2008-01-14
没有jstl定义啊,跟这个还有关系吗?
我试试 |
|
返回顶楼 | |
发表时间:2008-01-15
试了,还不行.. --;;;
|
|
返回顶楼 | |
发表时间:2008-01-20
<jsp-config> <jsp-property-group> <url-pattern>*.jsp</url-pattern> <el-ignored>true</el-ignored> <!-- <el-ignored>false</el-ignored> --> </jsp-property-group> </jsp-config> |
|
返回顶楼 | |
发表时间:2008-01-21
el只在2.4环境下支持吧,所以web.xml必须配为2.4以上的。
貌似是根据web.xml来判断版本的。 |
|
返回顶楼 | |
发表时间:2008-06-12
EL要在jstl2.0以上才能支持
|
|
返回顶楼 | |
发表时间:2008-08-28
el需要 servlet 2.4 吧
|
|
返回顶楼 | |