java – core和core_rt jstl标记之间的区别

前端之家收集整理的这篇文章主要介绍了java – core和core_rt jstl标记之间的区别前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
当我使用<%@ taglib uri =“http:// java.sun.com/jsp/jstl/core”prefix =“c”%>对于我的struts 1.3.10项目,它抛出以下异常:
org.apache.jasper.JasperException: 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
    org.apache.jasper.compiler.DefaultErrorHandler.jspError(DefaultErrorHandler.java:56)
    org.apache.jasper.compiler.ErrorDispatcher.dispatch(ErrorDispatcher.java:445)
    org.apache.jasper.compiler.ErrorDispatcher.jspError(ErrorDispatcher.java:117)
    org.apache.jasper.compiler.TagLibraryInfoImpl.generateTLDLocation(TagLibraryInfoImpl.java:311)
    org.apache.jasper.compiler.TagLibraryInfoImpl.<init>(TagLibraryInfoImpl.java:152)
    org.apache.jasper.compiler.Parser.parseTaglibDirective(Parser.java:410)
    org.apache.jasper.compiler.Parser.parseDirective(Parser.java:475)
    org.apache.jasper.compiler.Parser.parseElements(Parser.java:1427)
    org.apache.jasper.compiler.Parser.parse(Parser.java:138)
    org.apache.jasper.compiler.ParserController.doParse(ParserController.java:242)
    org.apache.jasper.compiler.ParserController.parse(ParserController.java:102)
    org.apache.jasper.compiler.Compiler.generateJava(Compiler.java:198)
    org.apache.jasper.compiler.Compiler.compile(Compiler.java:373)
    org.apache.jasper.compiler.Compiler.compile(Compiler.java:353)
    org.apache.jasper.compiler.Compiler.compile(Compiler.java:340)
    org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:646)
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:357)
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:390)
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:334)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:728)
    org.apache.struts.action.RequestProcessor.doForward(RequestProcessor.java:1083)
    org.apache.struts.tiles.TilesRequestProcessor.doForward(TilesRequestProcessor.java:295)
    org.apache.struts.action.RequestProcessor.processForwardConfig(RequestProcessor.java:396)
    org.apache.struts.tiles.TilesRequestProcessor.processForwardConfig(TilesRequestProcessor.java:347)
    org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:232)
    org.apache.struts.action.ActionServlet.process(ActionServlet.java:1913)
    org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:462)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:647)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:728)

然后,当我改变它

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

它工作正常.我想知道当我尝试使用<%@ taglib uri =“http://java.sun.com/jsp/jstl/core”prefix =“c”时,这两者之间有什么区别以及为什么它会抛出异常%取代.顺便说一句,我使用的是服务器apache-tomcat-7.0.42.请帮我.

解决方法

除非您使用的是非常旧版本的JSP(确切地说是JSP 1.2或1.1),否则您不应该使用其中任何一种.这些是JSTL 1.0 URI,不适合现代版本的JSP.

这两个库的区别在于,一个允许运行时表达式作为标记属性值,而另一个则不允许.在现代JSP和JSTL中,JSP引擎进行所有表达式评估,它不再相关.

猜你在找的Java相关文章