`
gimgen1026
  • 浏览: 160076 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

JSP页面EL表达式无效的问题

    博客分类:
  • Java
阅读更多
以前用WSAD wizard做的,都可以在JSP页面中解析到EL表达式,当然前提是JSP2.0的情况下。
今天遇到了一个莫名其妙的问题。刚下载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
分享到:
评论
15 楼 dwangel 2013-05-08  
shaka 写道
我的问题一样,可是我在jsp设置了isELIgnored,还是没起作用,真是搞不定了. 不知道是哪儿的问题,这个和引用的jar包有没有关系

对,是有依赖包

我一般用maven的,dependency里加(具体哪个我忘了,都加就是了,好像是jstl那个)

<!-- JSTL & Servlet -->
        <dependency>
            <groupId>taglibs</groupId>
            <artifactId>standard</artifactId>
            <version>1.1.2</version>
        </dependency>
        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>jstl</artifactId>
            <version>1.1.2</version>
        </dependency>
        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>servlet-api</artifactId>
            <version>2.4</version>
            <scope>provided</scope>
        </dependency>
        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>jsp-api</artifactId>
            <version>2.0</version>
            <scope>provided</scope>
        </dependency>
        <!-- end of JSTL & Servlet -->
14 楼 shaka 2013-05-08  
我的问题一样,可是我在jsp设置了isELIgnored,还是没起作用,真是搞不定了. 不知道是哪儿的问题,这个和引用的jar包有没有关系
13 楼 guokecheng 2008-09-24  
只有Servlet2.4版本默认支持EL,如果在MyEclipse新建web项目时,选择Java EE5.0的时候是用Servlet2.5的。它默认是不支持EL.要在页面声明<%@ page isELIgnored="false" %> 方有效,有谁知道在哪个配置文件中一次性声明,就不用每个页面都要声明的话,请告诉我啊,谢谢
12 楼 accphc 2008-09-24  
<jsp-config>难道只能在2.4下用???
11 楼 volking 2008-09-23  
zhende 写道

哥们s,应该写成忽略false啊,你们写个忽略为ture,那肯定不行了。&nbsp;
引用
&lt;jsp-config&gt;&nbsp; &nbsp;&nbsp;&nbsp; &lt;jsp-property-group&gt;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;url-pattern&gt;*.jsp&lt;/url-pattern&gt;&nbsp; &nbsp;&nbsp;&nbsp; &lt;el-ignored&gt;false&lt;/el-ignored&gt;&nbsp; &nbsp;&nbsp;&nbsp; &lt;/jsp-property-group&gt;&nbsp; &lt;/jsp-config&gt;


我试过,没用。只能在页面加入才行。
10 楼 zhende 2008-09-19  
哥们s,
应该写成忽略false啊,你们写个忽略为ture,那肯定不行了。
 
引用

<jsp-config> 
    <jsp-property-group> 
        <url-pattern>*.jsp</url-pattern> 
    <el-ignored>false</el-ignored> 
    </jsp-property-group> 
</jsp-config>


9 楼 srdrm 2008-08-28  
el需要 servlet 2.4 吧
8 楼 yangpeihai 2008-06-12  
EL要在jstl2.0以上才能支持
7 楼 dwangel 2008-01-21  
el只在2.4环境下支持吧,所以web.xml必须配为2.4以上的。
貌似是根据web.xml来判断版本的。
6 楼 jakoes 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> 
5 楼 gimgen1026 2008-01-15  
试了,还不行.. --;;;
4 楼 gimgen1026 2008-01-14  
没有jstl定义啊,跟这个还有关系吗?
我试试
3 楼 ztroma 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>

这样的定义?
2 楼 gimgen1026 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有更详细有效的配置方法吗?
1 楼 skydream 2008-01-13  
直接在web.xml里面设置ELIgnore不好吗?

我记得是有这个配制项的,这样就不必每个jsp页面都设置一次了。

相关推荐

    EL表达式无效问题《ZT》

    通过上述分析,我们可以看出,解决EL表达式无效问题需要从多个角度进行排查,包括检查依赖、语法、作用域、类型转换以及服务器配置等。理解并熟练运用这些知识,将有助于我们在开发过程中更有效地诊断和修复此类问题...

    使用IDEA编写jsp时EL表达式不起作用的问题及解决方法

    解决IDEA中EL表达式失效的问题通常涉及检查JSP页面的元指令、项目配置、依赖项以及应用服务器的设置。通过明确指定`isELIgnored`属性、确认Servlet版本和添加JSTL依赖,大多数情况下可以修复问题。如果问题依然存在...

    用EL判断登入密码和用户名是否为空

    EL表达式主要用于简化页面逻辑,提高代码可读性和维护性。在本场景中,"用EL判断登入密码和用户名是否为空"是一个典型的用户认证过程中的需求,确保在用户尝试登录时,输入的用户名和密码不为空,以防止无效的登录...

    El表达式使用问题javax.el.ELException:Failed to parse the expression的解决方式

    此外,EL表达式还可以与JSTL(JavaServer Pages Standard Tag Library)结合使用,增强JSP页面的功能,例如进行条件判断、循环控制等。 在实际开发中,当遇到`javax.el.ELException`时,首先应检查表达式是否符合EL...

    el-api.jar el-ri.jar

    在这个特定的错误信息中,`javax/el/ValueExpression` 指出问题可能出在EL表达式的解析或执行上。这可能是由于尝试使用未定义或无效的`ValueExpression`,或者在访问或操作Java对象时出现了问题。 **el-ri.jar** `...

    jsp页面使用${}不起作用的解决方法

    在Java Web开发中,JSP(JavaServer Pages)是一种用于创建动态网页的技术。在JSP中,`${}`表达式通常被称为EL...同时,学习和理解EL表达式的工作原理以及JSP页面的生命周期,对于诊断和解决这类问题非常有帮助。

    基于jsp的动态效果的登录页面

    JSP页面主要由静态内容(HTML、CSS、JavaScript)和动态元素(Java表达式、脚本片段、指令)组成。 二、登录页面结构 一个基本的登录页面通常包含以下组件: 1. 用户名输入框:用户输入其用户名或账户ID。 2. 密码...

    jstl实现jsp页面的分页

    通过结合EL表达式和JSTL标签,我们可以创建动态的、适应性强的分页界面,提高用户体验。在实际开发中,还需要考虑错误处理和优化,例如处理无效的页码请求,以及在数据量变化时自动调整分页参数等。

    ExtJS Jetty启动报错 tag

    这个修复方案解决了EL表达式在Jetty服务器上的解析问题,确保了JSP页面的正常编译和执行。对于开发人员来说,了解服务器和框架对EL语法的特定要求是非常重要的,尤其是当遇到类似问题时,及时调整表达式以符合这些...

    jsp传值中文乱码问题解决方法示例介绍.docx

    如果使用EL表达式(${...})或JSTL(如`${...}" /&gt;`),它们通常会自动处理编码问题,但仍建议在JSP页面头部设置响应编码。 8. 应用程序级设置: 在Servlet容器的配置中,可以设置全局的字符编码,比如在Spring ...

    自己写的jsp简单登录页面 myeclips

    在JSP页面中,你可以定义JavaBeans(自定义组件)、使用EL(表达式语言)进行数据绑定、以及利用JSTL(JavaServer Pages Standard Tag Library)进行控制流操作。在本例中,我们可能有一个简单的JSP文件,用于接收...

    JSP实现微博登陆界面

    对于可能出现的错误,如无效的登录尝试或数据库操作失败,JSP页面应提供适当的错误消息。这可以通过在Java代码中捕获异常,然后将错误信息传递回JSP页面显示。 总的来说,"JSP实现微博登录界面"项目展示了如何利用...

    JSP网页计算器.rar

    EL允许在JSP页面中直接访问JavaBean属性,使得页面更加简洁。在这个项目中,EL可用于直接显示计算结果,无需额外的Java代码。 8. **Ajax技术** 如果想增强用户体验,可以引入Ajax(Asynchronous JavaScript and ...

    jsp学生管理系统源代码

    5. **JSTL和EL表达式**:JSP Standard Tag Library(JSTL)提供了一组标签库,可以简化JSP页面中的业务逻辑,而Expression Language(EL)则提供了简洁的方式来访问和操作Java对象。 6. **会话管理**:为了跟踪用户...

    jsp实用编程实例集锦

    - EL简化了从JSP页面获取和设置JavaBean属性的过程,使得表达式更为简洁,如`${bean.property}`。 4. **JSP生命周期** - **解析阶段**:JSP被转换成Servlet源码。 - **编译阶段**:源码被编译成字节码,然后加载...

    jsp航空售票

    JSP文件由静态内容(HTML、CSS、JavaScript)和动态元素(Java代码片段、脚本let、JSP指令、EL表达式、JSTL标签库)组成。 2. **JSP生命周期**:JSP在被请求时会转化为Servlet,经历初始化、服务、销毁三个阶段。...

    jsp程序开发范例宝典 第十五章

    3. JSP表达式语言(EL):EL是一种简洁的脚本语言,用于获取和设置JavaBeans属性。它简化了从JSP页面访问Java对象的属性,如`${variable}`用于输出变量的值。 4. JavaServer Pages Standard Tag Library (JSTL):...

    一个经典的JSP分页实例

    例如,可以使用EL表达式来获取当前页、总页数、是否有前后页等信息,并生成相应的HTML链接。 6. **服务器端处理**:在服务器端,通常会有一个Servlet或Controller处理用户的分页请求,它负责查询数据库并填充...

    servlet+jsp+mysql简单交友网站系统

    5. **JSTL和EL**:JSP页面可能使用了JSP Standard Tag Library (JSTL)和Expression Language (EL),以更简洁的方式处理标签和表达式。 通过学习和实践这个项目,初学者可以掌握Java Web开发的基础,并逐步提升到更...

    期末考试题关于JSP

    - 使用EL(Expression Language)表达式代替脚本元素,提高代码可读性。 - 有效利用缓存和Session管理,减少不必要的数据库访问。 - 对JSP页面进行静态化,提升性能。 ### 故障排查与硬件维护 在描述中提到的故障...

Global site tag (gtag.js) - Google Analytics