Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Difference between core and core_rt jstl tag

Tags:

java

jstl

struts1

When I use <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %> for my struts 1.3.10 project, it throws following 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.<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)

Then when I have changed it to

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

it works fine. I like to know what is the difference between these two and why its throws exception when I try to use <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>. Btw I using server apache-tomcat-7.0.42. Please help me.

like image 677
gjman2 Avatar asked Sep 22 '13 13:09

gjman2


1 Answers

Unless you are using a very old version of JSP (JSP 1.2 or 1.1 to be exact) you shouldn't be using either of those. Those are JSTL 1.0 URIs and are not suited to modern versions of JSP.

The two libraries differed in that one would allow run-time expressions as tag attribute values, and one wouldn't. In modern JSP and JSTL, where the JSP engine does all expression evaluation, it's no longer relevant.

like image 92
Vishal Kukreja Avatar answered Sep 19 '22 23:09

Vishal Kukreja