我用jstl尝试过代码。
是个例外org.apache.jasper.JasperException:无法在web.xml或使用此应用程序部署的jar文件中解析绝对uri:http://java.sun.com/jsp/jstl/core
我正在使用eclipse。我添加了jstl.jar
和standard.jar
。我现在应该在web.xml
中给出什么?我不知道在<taglib>
中要提供什么。
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Insert title here</title>
</head>
<body>
<c:forEach var = "userName" items = "${name}">
<tr>
<td>${userName}</td>
</tr>
</c:forEach>
</body>
</html>
答案 0 :(得分:5)
如果您下载了具有不同URI的古老JSTL 1.0,或者您将JAR放在错误的位置(即不在/WEB-INF/lib
或webapp的运行时类路径中的任何位置),就会发生这种情况。
确保下载正确的版本并将JAR放入/WEB-INF/lib
。对于web.xml
声明为Servlet 2.5的Web应用程序,您只需要下载JSTL 1.2 as jstl-1.2.jar。对于Servlet 2.4 Web应用程序,您需要下载JSTL 1.1 as jstl.jar and standard.jar。
您无需提取JAR。您也不需要修改web.xml
,因为一些糟糕的在线教程建议。只需在运行时类路径中删除JAR,在JSP中声明taglib即可。
答案 1 :(得分:1)
如果jar文件保存在WEB-INF内的lib目录中,则无需在web.xml中输入jstl.jar或standard.jar。 默认情况下,容器会查看WEB-INF的lib目录
答案 2 :(得分:0)
您不必将taglib元素添加到web.xml。标准&amp; jstl jar通过容器中的服务机制进行查询。
确保使用web-app导出jar并位于WEB-INF / lib下,你应该没问题。