您的位置:首页 > Web前端 > JavaScript

JSTL的几个问题

2013-01-09 20:26 127 查看
报错:javax.servlet.jsp.PageContext.getELContext()Ljavax/el/ELContext等

可能出现问题,一个是JAR包冲突,另一个是TOMCAT版本不匹配,

因为tomcat的版本与jstl以及servlet还需要兼容,匹配如下:

servlet/jsp         tomcat

 2.5/2.1             6.0.18

 2.4/2.0             5.5.27

 2.3/1.2             4.1.39

 2.2/1.1              3.3.2(archived)

-----------------------------------------------------------

servlet       jsp      jstl     javaee

  2.5          2.1      1.2       5.0

  2.4          2.0       1.1      1.4

  2.3          1.2       1.0      1.2

注意看下web.xml头上servlet是什么版本

JAR包冲突,则去看一下,只用一个版本的JSTL
1.1需要引入两个包

<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jstl</artifactId>
<version>1.1.2</version>
<type>jar</type>
</dependency>
<dependency>
<groupId>taglibs</groupId>
<artifactId>standard</artifactId>
<version>1.1.2</version>
<type>jar</type>
</dependency>


1.2引入一个包就可以了

<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jstl</artifactId>
<version>1.2</version>
<type>jar</type>
</dependency>


另外:

1.1中要引入这个

<%@ taglib prefix="c" uri="http://java.sun.com//jstl/core" %>

1.2中引入这个,地址不太一样

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>

否则报错

org.apache.jasper.JasperException: /WEB-INF/jsp/search.jsp(18,11) According to TLD or attribute directive in tag file,
attribute value does not accept any expressions

Unable to read TLD "META-INF/c.tld" from JAR file 解决方法

删除WEB-INF/lib下面的servlet-api.jar jsp-api.jar ,java build path添加变量

server runtime

总之就是这个冲突了,如果使用maven,记得把servlet 和jsp的改为provided
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: