- 浏览: 160712 次
- 性别:
- 来自: 北京
最新评论
-
jz20110918:
千秋霸业 写道写的非常的好。只是我现在遇到了读取的问题,有的e ...
Java解释Excel数据(jxl.jar包的使用) -
dwangel:
<div class="quote_title ...
JSP页面EL表达式无效的问题 -
shaka:
我的问题一样,可是我在jsp设置了isELIgnored,还是 ...
JSP页面EL表达式无效的问题 -
Lixh1986:
整理的很详细。辛苦了,谢谢。
java.util.Properties类的使用 -
iceworld4143:
挨踢也疯狂 - 菠菜永久域名
这个名字真彪悍
hibernate自动建表
以前用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
web-app_2_3.xsd
web-app_2_4.xsd
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
对,是有依赖包
我一般用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 -->
哥们s,应该写成忽略false啊,你们写个忽略为ture,那肯定不行了。
引用
<jsp-config> <jsp-property-group> <url-pattern>*.jsp</url-pattern> <el-ignored>false</el-ignored> </jsp-property-group> </jsp-config>
我试过,没用。只能在页面加入才行。
今天遇到了一个莫名其妙的问题。刚下载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,那肯定不行了。
引用
<jsp-config> <jsp-property-group> <url-pattern>*.jsp</url-pattern> <el-ignored>false</el-ignored> </jsp-property-group> </jsp-config>
我试过,没用。只能在页面加入才行。
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>
应该写成忽略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来判断版本的。
貌似是根据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>
这样的定义?
<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里写
仍然没反应..
在网上也找了找,结果有些人说是Tomcat里web.xml和jsp页面上都得声明,大概是这意思。
skydream有更详细有效的配置方法吗?
于是刚才自己试了一下,光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页面都设置一次了。
我记得是有这个配制项的,这样就不必每个jsp页面都设置一次了。
发表评论
-
java进制互转
2008-04-25 13:31 1971十进制转成十六进制: Integer.toHexString( ... -
hibernate自动建表
2008-04-24 16:31 11925方案一 在hibernate.cfg.xml中添加: 引用&l ... -
Spring常用Interface&Class,为自己make plan
2008-04-22 11:02 2474最近对spring感兴趣,基 ... -
dom4j操作xml
2008-01-21 13:23 2380<Elements xmlns="http ... -
java.util.Properties类的使用
2007-12-31 03:26 30986Properties 类已不是新东西了,它在 Java 编程的 ... -
Java解释Excel数据(jxl.jar包的使用)
2007-12-31 03:17 24226jxl.jar 包 下载地址: http://www.andy ... -
实战角度比较EJB2和EJB3的异同
2007-12-30 03:48 2218本文从实战角度比较EJB2和EJB3的异同,通过深入剖析揭 ... -
log4j.properties input log to file.
2007-12-21 14:55 2020# Set the enterprise logger cat ... -
Java中如何正确使用字体编码
2007-12-21 00:56 1927首先声明一下,此文章 ... -
实体Bean的BMP和CMP选择
2007-12-13 15:47 3714EJB有两种主要类型BMP(Bean managed pers ... -
websphere mq常用命令
2007-12-12 15:41 5612转自:http://blog.csdn.net/shrek_c ... -
【半转】struts1.2 与struts1.1 Data-sources的配置
2007-12-07 10:01 2274原文链接http://club.yc.nx.cn/blog/u ... -
【转】请问一下什么是application server?它和web server有什么区别
2007-12-07 09:52 3009From http://slikyn.iteye.com/bl ... -
如何让WSAD的设置Workspace对话框重见天日
2007-11-30 17:45 1472每个用过IBM WSAD5.x的朋友都可能会遇 ... -
ejb在于你是去部署一个工程,而不是去编写一个工程。
2007-10-17 20:34 1288ejb在于你是去部署一个工程,而不是去编写一个工程。 这一句就 ... -
DB2——JDBC个人记录 (2)
2007-10-17 02:48 2028上次说 COM.ibm.db2.jdbc.net.DB2Dri ... -
DB2——JDBC个人记录
2007-10-17 02:40 1634我使用的DB2 Version为 8.1.10.812 网上有 ... -
login部分的Random验证码代码,还不够完善...
2007-10-17 02:34 1512package mypack.login; import ... -
[Ken原创] Struts里的session用法。
2007-10-17 02:33 3102昨天晚上突然遇到一个莫名其妙的问题,可惜因为熄灯没解决好,导致 ... -
[Ken原创]面向对象部分的总结
2007-10-17 02:31 1417Java也学一阵子了,最近正做项目才发现还是基础方面欠缺点,这 ...
相关推荐
通过上述分析,我们可以看出,解决EL表达式无效问题需要从多个角度进行排查,包括检查依赖、语法、作用域、类型转换以及服务器配置等。理解并熟练运用这些知识,将有助于我们在开发过程中更有效地诊断和修复此类问题...
解决IDEA中EL表达式失效的问题通常涉及检查JSP页面的元指令、项目配置、依赖项以及应用服务器的设置。通过明确指定`isELIgnored`属性、确认Servlet版本和添加JSTL依赖,大多数情况下可以修复问题。如果问题依然存在...
EL表达式主要用于简化页面逻辑,提高代码可读性和维护性。在本场景中,"用EL判断登入密码和用户名是否为空"是一个典型的用户认证过程中的需求,确保在用户尝试登录时,输入的用户名和密码不为空,以防止无效的登录...
此外,EL表达式还可以与JSTL(JavaServer Pages Standard Tag Library)结合使用,增强JSP页面的功能,例如进行条件判断、循环控制等。 在实际开发中,当遇到`javax.el.ELException`时,首先应检查表达式是否符合EL...
在Java Web开发中,JSP(JavaServer Pages)是一种用于创建动态网页的技术。在JSP中,`${}`表达式通常被称为EL...同时,学习和理解EL表达式的工作原理以及JSP页面的生命周期,对于诊断和解决这类问题非常有帮助。
在这个特定的错误信息中,`javax/el/ValueExpression` 指出问题可能出在EL表达式的解析或执行上。这可能是由于尝试使用未定义或无效的`ValueExpression`,或者在访问或操作Java对象时出现了问题。 **el-ri.jar** `...
JSP页面主要由静态内容(HTML、CSS、JavaScript)和动态元素(Java表达式、脚本片段、指令)组成。 二、登录页面结构 一个基本的登录页面通常包含以下组件: 1. 用户名输入框:用户输入其用户名或账户ID。 2. 密码...
通过结合EL表达式和JSTL标签,我们可以创建动态的、适应性强的分页界面,提高用户体验。在实际开发中,还需要考虑错误处理和优化,例如处理无效的页码请求,以及在数据量变化时自动调整分页参数等。
这个修复方案解决了EL表达式在Jetty服务器上的解析问题,确保了JSP页面的正常编译和执行。对于开发人员来说,了解服务器和框架对EL语法的特定要求是非常重要的,尤其是当遇到类似问题时,及时调整表达式以符合这些...
如果使用EL表达式(${...})或JSTL(如`${...}" />`),它们通常会自动处理编码问题,但仍建议在JSP页面头部设置响应编码。 8. 应用程序级设置: 在Servlet容器的配置中,可以设置全局的字符编码,比如在Spring ...
在JSP页面中,你可以定义JavaBeans(自定义组件)、使用EL(表达式语言)进行数据绑定、以及利用JSTL(JavaServer Pages Standard Tag Library)进行控制流操作。在本例中,我们可能有一个简单的JSP文件,用于接收...
对于可能出现的错误,如无效的登录尝试或数据库操作失败,JSP页面应提供适当的错误消息。这可以通过在Java代码中捕获异常,然后将错误信息传递回JSP页面显示。 总的来说,"JSP实现微博登录界面"项目展示了如何利用...
EL允许在JSP页面中直接访问JavaBean属性,使得页面更加简洁。在这个项目中,EL可用于直接显示计算结果,无需额外的Java代码。 8. **Ajax技术** 如果想增强用户体验,可以引入Ajax(Asynchronous JavaScript and ...
5. **JSTL和EL表达式**:JSP Standard Tag Library(JSTL)提供了一组标签库,可以简化JSP页面中的业务逻辑,而Expression Language(EL)则提供了简洁的方式来访问和操作Java对象。 6. **会话管理**:为了跟踪用户...
- EL简化了从JSP页面获取和设置JavaBean属性的过程,使得表达式更为简洁,如`${bean.property}`。 4. **JSP生命周期** - **解析阶段**:JSP被转换成Servlet源码。 - **编译阶段**:源码被编译成字节码,然后加载...
JSP文件由静态内容(HTML、CSS、JavaScript)和动态元素(Java代码片段、脚本let、JSP指令、EL表达式、JSTL标签库)组成。 2. **JSP生命周期**:JSP在被请求时会转化为Servlet,经历初始化、服务、销毁三个阶段。...
3. JSP表达式语言(EL):EL是一种简洁的脚本语言,用于获取和设置JavaBeans属性。它简化了从JSP页面访问Java对象的属性,如`${variable}`用于输出变量的值。 4. JavaServer Pages Standard Tag Library (JSTL):...
例如,可以使用EL表达式来获取当前页、总页数、是否有前后页等信息,并生成相应的HTML链接。 6. **服务器端处理**:在服务器端,通常会有一个Servlet或Controller处理用户的分页请求,它负责查询数据库并填充...
5. **JSTL和EL**:JSP页面可能使用了JSP Standard Tag Library (JSTL)和Expression Language (EL),以更简洁的方式处理标签和表达式。 通过学习和实践这个项目,初学者可以掌握Java Web开发的基础,并逐步提升到更...
- 使用EL(Expression Language)表达式代替脚本元素,提高代码可读性。 - 有效利用缓存和Session管理,减少不必要的数据库访问。 - 对JSP页面进行静态化,提升性能。 ### 故障排查与硬件维护 在描述中提到的故障...