最近在做的项目中,在jsp页面中经常会出现el表达式${}无效的情况,之前一直以为el表达式是无所不能不能的,现在才发现,他也是有局限性的,并不是所有的Servlet / JSP的版本默认都支持他。只有在Servlet 2.4 / JSP 2.0及以上的版本后,才默认支持el表达式的,下面是辨别jsp版本的方式(需要查看web.xml的头文件):
一、Servlet 2.4 / JSP 2.0:
<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>
二、Servlet 2.3 / JSP 1.2:
<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd" >
在默认情况下,Servlet 2.3 / JSP 1.2是不支持EL表达式的,而Servlet 2.4 / JSP 2.0支持。
如果是在Servlet 2.3 / JSP 1.2下,将JSP页面的开头添加如下一句代码即可。
<%@ page isELIgnored="false" %>
如果是在Servlet 2.4 / JSP 2.0下,检查上面的这句代码里是否把isELIgnored设为了true,还有在web.xml中,是否将jsp-config标签里的jsp-property-group标签里的el-ignored设为了true。
相关推荐
当遇到EL表达式无效的问题时,通常有以下几个原因: 1. **依赖库缺失**:EL表达式是基于特定的库实现的,如`jstl.jar`和`standard.jar`。`jstl.jar`包含JSTL(JavaServer Pages Standard Tag Library)的核心标签库...
解决IDEA中EL表达式失效的问题通常涉及检查JSP页面的元指令、项目配置、依赖项以及应用服务器的设置。通过明确指定`isELIgnored`属性、确认Servlet版本和添加JSTL依赖,大多数情况下可以修复问题。如果问题依然存在...
总结一下,EL表达式在Web开发中起着关键的作用,能够帮助我们简洁、高效地处理页面逻辑。在登录验证场景中,通过EL表达式可以轻松检查用户名和密码是否为空,从而提高用户体验和系统安全性。结合JSTL等库,我们可以...
例如,问题中提到的情况,EL表达式`${owner.new}`会抛出异常,因为`new`是Java中的一个关键字,用于实例化新对象。Tomcat 7尤其对EL表达式的语法检查较为严格,不允许使用关键字作为属性名。 解决这个问题有以下几...
在这个特定的错误信息中,`javax/el/ValueExpression` 指出问题可能出在EL表达式的解析或执行上。这可能是由于尝试使用未定义或无效的`ValueExpression`,或者在访问或操作Java对象时出现了问题。 **el-ri.jar** `...
首先,EL表达式的工作原理是基于JSP规范中的Java Expression Language,它能够解析并执行Java表达式,将结果输出到页面上。当你在JSP页面中使用`${}`时,如果你的数据没有正确显示,可能是以下几个原因: 1. **JSTL...
如果使用EL表达式(${...})或JSTL(如`${...}" />`),它们通常会自动处理编码问题,但仍建议在JSP页面头部设置响应编码。 8. 应用程序级设置: 在Servlet容器的配置中,可以设置全局的字符编码,比如在Spring ...
对于可能出现的错误,如无效的登录尝试或数据库操作失败,JSP页面应提供适当的错误消息。这可以通过在Java代码中捕获异常,然后将错误信息传递回JSP页面显示。 总的来说,"JSP实现微博登录界面"项目展示了如何利用...
`PWC6038`错误代码是Apache Tomcat的专用错误码,意味着在JSP文件中发现了一个无效的EL表达式。 解决这个问题的关键在于理解EL的运算优先级。在原始表达式中,`extLocation`直接被用作条件判断的一部分,但EL可能...
3. JSP EL(Expression Language):在JSP中,EL用于简洁地访问JavaBean属性,可以用来展示错误消息或者根据登录状态显示不同内容。 四、后端验证 当用户点击登录按钮,表单数据会被发送到服务器端。在JSP中,可以...
5. **JSTL和EL表达式**:JSP Standard Tag Library(JSTL)提供了一组标签库,可以简化JSP页面中的业务逻辑,而Expression Language(EL)则提供了简洁的方式来访问和操作Java对象。 6. **会话管理**:为了跟踪用户...
EL允许在JSP页面中直接访问JavaBean属性,使得页面更加简洁。在这个项目中,EL可用于直接显示计算结果,无需额外的Java代码。 8. **Ajax技术** 如果想增强用户体验,可以引入Ajax(Asynchronous JavaScript and ...
JSP文件由静态内容(HTML、CSS、JavaScript)和动态元素(Java代码片段、脚本let、JSP指令、EL表达式、JSTL标签库)组成。 2. **JSP生命周期**:JSP在被请求时会转化为Servlet,经历初始化、服务、销毁三个阶段。...
- EL简化了从JSP页面获取和设置JavaBean属性的过程,使得表达式更为简洁,如`${bean.property}`。 4. **JSP生命周期** - **解析阶段**:JSP被转换成Servlet源码。 - **编译阶段**:源码被编译成字节码,然后加载...
JSP可以通过`<jsp:getProperty>`和`<jsp:setProperty>`标签获取这些参数,或者使用EL(Expression Language)表达式直接访问它们。 5. **会话管理**: 为了保持用户的登录状态,开发者可能会使用JSP的会话管理特性...
通过结合EL表达式和JSTL标签,我们可以创建动态的、适应性强的分页界面,提高用户体验。在实际开发中,还需要考虑错误处理和优化,例如处理无效的页码请求,以及在数据量变化时自动调整分页参数等。
在JSP页面中,可以通过设置page指令的isELIgnored属性为"false"来启用EL表达式: ```jsp ``` 将isELIgnored设置为false后,EL表达式才会被解析执行,否则所有的EL表达式都会像普通文本一样被直接输出。这个属性的...
3. JSP表达式语言(EL):EL是一种简洁的脚本语言,用于获取和设置JavaBeans属性。它简化了从JSP页面访问Java对象的属性,如`${variable}`用于输出变量的值。 4. JavaServer Pages Standard Tag Library (JSTL):...
在JSP中,可以使用EL(Expression Language)和JSTL(JavaServer Pages Standard Tag Library)标签库来简化数据的显示和操作。 8. **用户权限管理**:虽然这个例子未提及,但实际的企业级应用通常需要考虑用户登录...
5. **JSTL和EL**:JSP页面可能使用了JSP Standard Tag Library (JSTL)和Expression Language (EL),以更简洁的方式处理标签和表达式。 通过学习和实践这个项目,初学者可以掌握Java Web开发的基础,并逐步提升到更...