2013-09-22 3 views
5

Когда я использую <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %> для моих распорок 1.3.10 проекта, он бросает следующее исключение:разница между ядром и core_rt JSTL тег

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" %>. Btw я использую сервер apache-tomcat-7.0.42. Пожалуйста, помогите мне.

ответ

2

Если вы используете очень старую версию JSP (например, JSP 1.2 или 1.1), вы не должны использовать ни один из них. Это URI JSTL 1.0 и не подходят для современных версий JSP.

Две библиотеки отличаются друг от друга тем, что позволяли выражения во время выполнения в качестве значений атрибутов тега, а другие - нет. В современных JSP и JSTL, где JSP-движок выполняет всю оценку выражений, это уже не актуально.

+0

@ vhisal-kukreja, как узнать версию jsp в netbean? – gjman2

+0

@ gjman2, создайте простую страницу JSP и введите следующий код: JSP Версия: <% = JspFactory.getDefaultFactory(). GetEngineInfo(). GetSpecificationVersion()%> –

+0

my jsp is 2.2, теперь делает wat? – gjman2

0

Я думаю, что вы получаете исключение, потому что URI отличается для версии _rt (_rt), поэтому ваш импорт taglib неверен для тегов в используемой банке.

Разница в том, что один вид позволяет использовать язык выражения ${someExpr}, и этот термин зависит от сценариев <%= some code %>. Вы должны иметь возможность находить правильные данные в Google.

Смежные вопросы