Tomcat10中添加JSTL库的一些问题:foreach一使用就报错
<%@ page import="java.util.HashMap" %><%@ page contentType="text/html; charset=UTF-8" %>
<%--引用核心标签库--%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%--格式化标签库--%>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
<%--sql标签库--%>
<%@ taglib prefix="sql" uri="http://java.sun.com/jsp/jstl/sql" %>
<%
HashMap<String,String> hashMap = new HashMap<>();
hashMap.put("userName","ly");
hashMap.put("passWord","1234");
request.setAttribute("hashMap",hashMap);
%>
<html>
<head>
<title>index</title>
</head>
<body>
<c:out value="hello baby"></c:out>
<c:forEach items="${hashMap}" var="s">
${s.key}
</c:forEach>
</body>
</html>
问题描述:在Tomcat10中添加JSTL库后,使用<c:forEach>标签时会出现错误。
解决方案:在Tomcat10中,需要将JSTL库的jar包放在Tomcat的lib目录下,而不是WEB-INF/lib目录下。如果仍然出现错误,可能是因为缺少EL库的jar包,可以将EL库的jar包也放在Tomcat的lib目录下。
另外,在JSP页面中使用JSTL标签库时,需要在JSP页面中引入标签库的命名空间。在本例中,需要在JSP页面的开头加入以下代码:
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
这样就可以正确使用<c:forEach>标签了。 这个是我导入的包 HTTP状态 500 - 内部服务器错误
类型 异常报告
消息 java.lang.NoClassDefFoundError: jakarta/servlet/jsp/jstl/core/LoopTag
描述 服务器遇到一个意外的情况,阻止它完成请求。
例外情况
jakarta.servlet.ServletException: java.lang.NoClassDefFoundError: jakarta/servlet/jsp/jstl/core/LoopTag
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:333)
jakarta.servlet.http.HttpServlet.service(HttpServlet.java:631)
org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)
根本原因。
java.lang.NoClassDefFoundError: jakarta/servlet/jsp/jstl/core/LoopTag
java.base/java.lang.ClassLoader.defineClass1(Native Method)
java.base/java.lang.ClassLoader.defineClass(ClassLoader.java:1013)
java.base/java.security.SecureClassLoader.defineClass(SecureClassLoader.java:150)
org.apache.catalina.loader.WebappClassLoaderBase.findClassInternal(WebappClassLoaderBase.java:2487)
org.apache.catalina.loader.WebappClassLoaderBase.findClass(WebappClassLoaderBase.java:865)
org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1401)
org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1245)
org.apache.jasper.compiler.Parser.parseCustomTag(Parser.java:1236)
org.apache.jasper.compiler.Parser.parseElements(Parser.java:1469)
org.apache.jasper.compiler.Parser.parse(Parser.java:138)
org.apache.jasper.compiler.ParserController.doParse(ParserController.java:245)
org.apache.jasper.compiler.ParserController.parse(ParserController.java:106)
org.apache.jasper.compiler.Compiler.generateJava(Compiler.java:211)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:396)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:372)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:356)
org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:603)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:396)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:380)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:328)
jakarta.servlet.http.HttpServlet.service(HttpServlet.java:631)
org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)
根本原因。
java.lang.ClassNotFoundException: jakarta.servlet.jsp.jstl.core.LoopTag
org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1437)
org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1245)
java.base/java.lang.ClassLoader.defineClass1(Native Method)
java.base/java.lang.ClassLoader.defineClass(ClassLoader.java:1013)
java.base/java.security.SecureClassLoader.defineClass(SecureClassLoader.java:150)
org.apache.catalina.loader.WebappClassLoaderBase.findClassInternal(WebappClassLoaderBase.java:2487)
org.apache.catalina.loader.WebappClassLoaderBase.findClass(WebappClassLoaderBase.java:865)
org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1401)
org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1245)
org.apache.jasper.compiler.Parser.parseCustomTag(Parser.java:1236)
org.apache.jasper.compiler.Parser.parseElements(Parser.java:1469)
org.apache.jasper.compiler.Parser.parse(Parser.java:138)
org.apache.jasper.compiler.ParserController.doParse(ParserController.java:245)
org.apache.jasper.compiler.ParserController.parse(ParserController.java:106)
org.apache.jasper.compiler.Compiler.generateJava(Compiler.java:211)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:396)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:372)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:356)
org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:603)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:396)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:380)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:328)
jakarta.servlet.http.HttpServlet.service(HttpServlet.java:631)
org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)
):注意 主要问题的全部 stack 信息可以在 server logs 里查看 isdkz 发表于 2023-5-10 03:53
问题描述:在Tomcat10中添加JSTL库后,使用标签时会出现错误。
解决方案:在Tomcat10中,需要将JSTL库的ja ...
这个是Tomcat的lib目录吗 isdkz 发表于 2023-5-10 03:53
问题描述:在Tomcat10中添加JSTL库后,使用标签时会出现错误。
解决方案:在Tomcat10中,需要将JSTL库的ja ...
zhege? 在 Tomcat 10 中添加 JSTL 库时,可能会遇到以下一些问题:
1. 报错信息:`The absolute uri: http://java.sun.com/jsp/jstl/core cannot be resolved in either web.xml or the jar files deployed with this application`
解决方法:将 jstl-1.2.jar 和 standard-1.1.2.jar 放置在 WEB-INF/lib 目录下。
2. 报错信息:`According to TLD, tag c:forEach must be empty, but is not`
解决方法:将 `<c:forEach></c:forEach>` 转换为 `<c:forEach />`,或者在开始标签的位置添加 `</c:forEach>`(即闭合标签)。
3. 遍历 Map 对象时报错:`${s.key}` 无法输出 Map 的 Key 值。
解决方法:需要修改 `<c:forEach>` 标签中的属性值 items,从 `${hashMap}` 修改为 `${hashMap.entrySet()}`。这样在遍历 Map 的时候,就可以使用 `${s.key}` 输出 Key 的值,`${s.value}` 输出 Value 的值了。
修改后的代码如下所示:
<c:out value="hello baby"></c:out>
<c:forEach items="${hashMap.entrySet()}" var="s">
${s.key}
</c:forEach> sfqxx 发表于 2023-5-10 07:29
在 Tomcat 10 中添加 JSTL 库时,可能会遇到以下一些问题:
1. 报错信息:`The absolute uri: http://ja ...
在吗?哥,我弄好了,内个我又下了一个api-jar好像好了,这一直接关系吗 sfqxx 发表于 2023-5-10 07:29
在 Tomcat 10 中添加 JSTL 库时,可能会遇到以下一些问题:
1. 报错信息:`The absolute uri: http://ja ...
我重换了一个jar包就好了{:9_232:}
页:
[1]