core和core_rt jstl标记之间的区别

当我对我的struts 1.3.10项目使用 ,它会抛出以下exception:

 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.(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) 

然后我把它改成了

  

它工作正常。 我想知道当我尝试使用时,这两者之间有什么区别以及为什么它抛出exception 。 顺便说一句,我使用的是服务器apache-tomcat-7.0.42。 请帮帮我。

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

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

我认为你得到了例外,因为_rt版本(附加_rt )的URI不同,所以你正在使用的jar中的taglib导入是错误的。

区别在于一种允许表达式语言${someExpr} ,该术语依赖于scriptlets <%= some code %> 。 您应该能够通过Google找到适当的详细信息。