原来使用weblogic9和jstl1.1,后来由于客户的服务器是使用weblogic8.1.X,需要将jstl1.1的项目迁移到weblogic8.1上,出现了下面的问题:
java.lang.NoClassDefFoundError: javax/servlet/jsp/el/ELException
原因是这样的:
weblogic8.1本身并不支持jsp2.0,因为jsp2.0中已经把ELException类包括进去了,而weblogic8.1里的是JSP1.2,JSTL1.1里也并没有这个包。这样就没有办法在weblogic里使用jstl1.1,必须将jstl1.1改为jstl1.0,修改办法是这样的:
我是用的servlet版本是2.3,原来在web.xml中并没有关于jstl的任何信息,现在添加如下内容:
<taglib>
<taglib-uri>http://java.sun.com/jsp/jstl/core</taglib-uri>
<taglib-location>/WEB-INF/c.tld</taglib-location>
</taglib>
使用下面的网页测试:
jstltest.jsp:
<%@ page language="java" pageEncoding="gb2312"%>
<%-- jstl taglib --%>
<%@ taglib prefix="c" uri="/WEB-INF/c.tld" %>
<html>
<head>
<title>jstltest.jsp</title>
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
</head>
<body>
<c:out value="您使用的浏览器是:"/><br>
<c:out value="${header['User-Agent']}"/>
</body>
</html>
输出的结果:
您使用的浏览器是:
Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)