JSTL 1.2 jsp使用jstl导入包的各种错误解决

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/flyingsir_zw/article/details/82901049
  • JSTL 1.2 使用遇到的问题
    在这里插入图片描述

  • JSP 代码

<%@ page language="java" contentType="text/html; charset=GB18030"
    pageEncoding="GB18030" isELIgnored="true"%>
<%-- <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %> --%>
<%@ taglib uri="http://java.sun.com/jstl/core_rt" prefix="c" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=GB18030">
<title>runoob</title>
</head>
<body>
<%
	out.println("Hello Runoob!");
	out.println("Hello 菜鸟!");
%>
<!--  测试一下 jstl 循环 -->
<c:forEach var="x" begin="1" end="5">
	<c:out value="${x }"></c:out>
</c:forEach>
</body>
</html>

——-分割线——-
java.lang.NoClassDefFoundError: javax/servlet/jsp/jstl/core/LoopTag 错误:
把相应的 jstl.jar 放入到tomcat/lib目录下

java.lang.NoClassDefFoundError: org/apache/taglibs/standard/tag/rt/core/ForEachTag 错误:
把相应的 standard.jar 放入到tomcat/lib目录下
standard.jar JSTL下载

——–分割线——-
如果这样还是出现java.lang.NoClassDefFoundError: javax/servlet/jsp/jstl/core/LoopTag

这是因为 javax.servlet.jsp.jstl-1.2.X.jar 不包含 javax.servlet.jsp.jstl.core
去这个网址 传送门 下载jstl-1.2.jar 再放到 lib/ 下,完美解决Nice

  • 新错误
    在这里插入图片描述
HTTP Status 500 - java.lang.NoSuchMethodError: org.apache.taglibs.standard.lang.support.ExpressionEvaluatorManager.validate(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;


type Exception report

message java.lang.NoSuchMethodError: org.apache.taglibs.standard.lang.support.ExpressionEvaluatorManager.validate(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;

description The server encountered an internal error that prevented it from fulfilling this request.

exception
javax.servlet.ServletException: java.lang.NoSuchMethodError: org.apache.taglibs.standard.lang.support.ExpressionEvaluatorManager.validate(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
	org.apache.jasper.servlet.JspServlet.service(JspServlet.java:349)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
	org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)


root cause
java.lang.NoSuchMethodError: org.apache.taglibs.standard.lang.support.ExpressionEvaluatorManager.validate(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
	org.apache.taglibs.standard.tlv.el.ValidationUtil.validateExpression(ValidationUtil.java:26)
	org.apache.taglibs.standard.tlv.el.JstlELCoreTLV.validateExpression(JstlELCoreTLV.java:26)
	org.apache.taglibs.standard.tlv.JstlCoreTLV$Handler.startElement(JstlCoreTLV.java:157)
	com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.startElement(Unknown Source)
	com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.scanStartElement(Unknown Source)
	com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDriver.next(Unknown Source)
	com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(Unknown Source)
	com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.next(Unknown Source)
	com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown Source)
	com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(Unknown Source)
	com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(Unknown Source)
	com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(Unknown Source)
	com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(Unknown Source)
	com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser.parse(Unknown Source)
	com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl.parse(Unknown Source)
	javax.xml.parsers.SAXParser.parse(Unknown Source)
	org.apache.taglibs.standard.tlv.JstlBaseTLV.validate(JstlBaseTLV.java:165)
	org.apache.taglibs.standard.tlv.JstlCoreTLV.validate(JstlCoreTLV.java:105)
	org.apache.jasper.compiler.TagLibraryInfoImpl.validate(TagLibraryInfoImpl.java:379)
	org.apache.jasper.compiler.Validator.validateXmlView(Validator.java:1890)
	org.apache.jasper.compiler.Validator.validateExDirectives(Validator.java:1859)
	org.apache.jasper.compiler.Compiler.generateJava(Compiler.java:217)
	org.apache.jasper.compiler.Compiler.compile(Compiler.java:356)
	org.apache.jasper.compiler.Compiler.compile(Compiler.java:336)
	org.apache.jasper.compiler.Compiler.compile(Compiler.java:323)
	org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:585)
	org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:363)
	org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:396)
	org.apache.jasper.servlet.JspServlet.service(JspServlet.java:340)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
	org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)


note The full stack trace of the root cause is available in the Apache Tomcat/8.0.27 logs.


Apache Tomcat/8.0.27

所有问题解决测试成功

  • eclipse 创建 web 项目 — Dynamic Web Project
    • 版本 2.5以上(一下都可以试试)
  • 复制两个lib到以下路径
  • WebContent 下创建一个jsp测试文件
<%@ page language="java" contentType="text/html; charset=GB18030"
    pageEncoding="GB18030"%>
<!-- 这里是需要引入的jstl的lib -->
<%@ taglib uri="http://java.sun.com/jstl/core_rt" prefix="c" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=GB18030">
<title>runoob</title>
</head>
<body>
<%
	out.println("Hello Runoob!");
	out.println("Hello 菜鸟!");
%>
<!-- 这里测试jstl调用forEach循环 -->
<c:forEach var="x" begin="1" end="5">
	<c:out value="${x}"></c:out>
</c:forEach>
</body>
</html>
  • eclipse 配置好tomcat可以运行测试效果
  • 在这里插入图片描述
    在这里插入图片描述

完整的测试jstl使用的项目,和lib包

猜你喜欢

转载自blog.csdn.net/flyingsir_zw/article/details/82901049