背景:
公司搭建的工程web.xml版本为2.3 在jsp中不能使用el表达式
解决方案:
①修改web.xml版本为2.4 / 2.5 / 3.0 当修改为2.3以上版本时,可以在页面中直接使用el表达式
(不推荐,不能因为个人项目中出现的问题,而修改公司框架结构) ②在jsp页面中添加el表达式的显示支持 isELIgnored="false"
例 :<%@ page language="java" import="java.util.*" pageEncoding="utf-8" isELIgnored="false" %>
2.3版本的jsp页面是不支持这个属性提示的,报黄线属于正常
这时虽然可以使用el表达式,但与c标签结合使用时,会出现如下异常
According to TLD or attribute directive in tag file, attribute items does not accept any expressions
查阅资料,貌似是c标签在2.3下不能与el一起使用
解决方案:使用c标签的扩展库
<taglib>
<taglib-uri>/c-rt</taglib-uri>
<taglib-location>/WEB-INF/c-rt.tld</taglib-location>
</taglib>
上面的代码是在web.xml中配置的,当然你也可以直接在jsp页面中配置
<%@ taglib uri="/WEB-INF/c-rt.tld" prefix="c"%> 或
<%@ taglib uri=http://java.sun.com/jstl/core_rt prefix="c"%>
这样就可以在c标签中使用el表达式了
下面是2.3 2.4 2.5 版本的头信息
Servlet 2.3 <?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> ... </web-app> Servlet 2.4 <?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:web="http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd " version="2.4"> ... </web-app> Servlet 2.5 <?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" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd " version="2.5"> ... </web-app>
补充:
如果在web.xml中配置tld标签的话 2.3版本与 后面的版本写法是不同的
2.3 存在taglib这个节点 <taglib> <taglib-uri>/c-rt</taglib-uri> <taglib-location>/WEB-INF/c-rt.tld</taglib-location> </taglib>
相关推荐
综上所述,在开发中遇到EL表达式问题时,可以通过调整web.xml文件中的JSP版本配置或在JSP页面中调整page directive指令来解决。同时,了解EL表达式在不同Java EE版本中的行为差异以及它们提供的新特性,有助于在实际...
由于Web 2.5及更高版本的规范默认支持EL表达式的解析,可以通过修改web.xml文件的`<web-app>`标签中的`version`属性值来实现。 ```xml <?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi=...
本主题主要探讨在使用EL表达式时所依赖的jar包及其作用。 1. **JSTL (JavaServer Pages Standard Tag Library)** EL通常与JSTL一起使用,JSTL提供了一系列标准标签库,用于增强JSP页面的功能。JSTL的核心标签库(`...
随后,可以在你的JSP页面中测试EL表达式的使用情况,比如通过`<%= %>`或`<c:out value="${bean.property}"/>`等方式访问JavaBean的属性,检查是否能正确显示预期的数据。 总之,要使Tomcat 5.5.28支持EL表达式,...
如果你的 `web.xml` 文件配置的是 Servlet 2.3 或更低版本,那么默认情况下,它将不支持 EL 表达式。你需要将 `web.xml` 的版本升级到 Servlet 2.4 或更高,例如设置为: ```xml <web-app version="2.4" xmlns=...
其次,`jstl.jar`(JavaServer Pages Standard Tag Library)是JSP标准标签库,它包含了EL表达式支持和其他常用的JSP标签,如条件语句、循环、函数调用等。在EL表达式与JSTL结合使用时,可以极大地增强JSP页面的功能...
–CTYPE web-app PUBLIC </sp> “-//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 ...
EL表达式通常被用来获取和设置页面、请求、会话和应用程序范围内的对象属性,以及处理JSP页面中的各种数据。 在Tomcat服务器中,EL表达式默认是启用的,但在某些情况下可能需要手动配置。有以下两种方法来确保...
自定义EL表达式是Java Web开发中的一个高级技巧,它允许开发者扩展标准的JSP Expression Language(EL)功能,以满足特定项目需求。EL是一种简洁的语法,用于在JSP页面中获取JavaBean属性或者调用Java方法。通过...
Spring 整合 Shiro 并扩展使用 EL 表达式实例详解 本文将详细介绍 Spring 整合 Shiro 框架,并通过扩展使用 Spring 的 EL 表达式来实现权限控制。Shiro 是一个轻量级的权限控制框架,应用非常广泛。下面是 Spring ...
默认情况下,如果Web应用的`web.xml`配置文件遵循Servlet 2.3(对应JSP 1.2)或更早版本,`isELIgnored`可能会被设置为`true`,导致EL表达式不被执行。在IDEA中,如果你的项目配置或依赖管理出现了问题,也可能出现...
首先需要通过`taglib`指令导入TLD文件,然后就可以在EL表达式中使用自定义函数了。 **JSP示例**: ```jsp <%@ taglib prefix="el" uri="/WEB-INF/mytag.tld" %> <title>EL自定义函数示例 原字符串: ${iklist...
总的来说,当遇到JSP页面无法识别EL表达式的情况时,检查并调整JSP页面头部的 `isELIgnored` 属性或升级web.xml的版本是有效的解决策略。同时,确保你的JSP环境配置正确,例如Servlet容器(如Tomcat)的版本支持EL...
`<c:out>`标签用于安全地输出EL表达式`${name}`的结果。 ### 4. JSTL与C标签的关系 C标签是JSTL核心库的一部分,提供了类似于Java的控制结构,如条件判断、循环等。例如,`<c:if>`用于条件判断,`<c:forEach>`用于...
然而,在使用EL表达式时,有时候可能会遇到它不被解析,而是直接显示为字符串的问题。遇到这种情况,我们需要找到原因并解决它。 首先,我们知道在默认情况下,Servlet 2.4/JSP 2.0是支持EL表达式的。如果EL表达式...
- **`${oneInfor.getUserId()}`**:EL表达式,动态获取`oneInfor`对象的`getUserId()`方法返回值。 #### 六、示例分析 以下是一个具体的Action配置示例: ```xml <action name="OneInfor" class="queryOneInfor">...
此外,如果使用Struts框架,还需要确保在`/WEB-INF/lib`目录下有Struts和相关EL的库文件,以便正确解析EL表达式。 #### 在Struts中使用EL 当在Struts项目中使用EL时,需要注意的是Struts的配置也需要支持EL。在`...
- **Stack Overflow**:使用标签 `spring-webflow` 发布问题。 **1.4 跟踪开发进度** 想要了解最新的开发进展和计划,请关注: - **GitHub**:官方代码仓库,可跟踪最新的代码提交。 - **官方博客**:发布最新的...
通过理解`web.xml`的配置以及Servlet和JSP版本之间的差异,可以有效地解决EL表达式无法解析的问题。务必确保你的项目配置与所使用的Servlet容器兼容,以充分利用EL的强大功能。同时,检查并更新`web.xml`文件以匹配...