jstl <c: if> теги не работают в jsp файле, получая ошибку в Tomcat 7
У меня проблема с использованием тега JSTL<c:if>
в файле JSP. В основном я должен сделать это как 2 вопроса, хотя они связаны между собой.
В моем WEB-INF / lib я поставил jstl 1.2.jar
В моем файле JSP я положил это<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
.
В моем файле JSP я использую<c:if>
сделать что-то. Если условие истинно, будет показано специальное сообщение
В основном содержимое внутри<c:if>
не работает, потому что сообщение не отображается, даже если условие истинно.
Но если я изменил использовать старое пространство имен,<%@ taglib prefix="c" uri="http://java.sun.com/jstl/core"%>
, Другие не меняются, тогда работает тег if, потому что отображается сообщение внутри тега if.
Мой первый вопрос: почему я должен использовать / jstl вместо / jsp / jstl в пространстве имен. Я использую jstl1.2.jar. поэтому я должен использовать более новый URI для 1.2. Тем не менее, старый URI работает, но не более новый UIR.
The second question:Я игнорирую первый вопрос, который у меня есть, и просто использую / jstl в качестве пространства имен только потому, что это заставляет мое веб-приложение работать так, как я хочу. Однако при развертывании моего веб-приложения в tomcat 7.X отображаются следующие исключения:
org.apache.jasper.JasperException: /mywebapp.jsp (line: 35, column: 10) According to TLD or attribute directive in tag file, attribute test does not accept any expressions org.apache.jasper.compiler.DefaultErrorHandler.jspError(DefaultErrorHandler.java:42)
в строке /mywebapp.jsp: 35, столбец: 10, то есть & lt; C: если & GT; тег.
Если я изменю пространство имен с & lt;% @ taglib prefix = & quot; c & quot; = & URI Quot; HTTP: //java.sun.com/jstl/core"% & GT; в префикс & lt;% @ taglib = & quot; c & quot; uri = & quot; http: //java.sun.com/jsp/jstl/core"% & gt ;, он может успешно развернуться в tomcat, но с функциональностью внутри & lt; C: если & GT; тег не полезен. другие коды за пределами<c:if>
работа тега все же.
Поэтому я очень смущен и очень хочу знать, как это исправить.
Кстати, я использую сервлет 2.5, jsp 2.0, jstl 1.2. Я попытался обновить jsp2.0 до jsp2.1, чтобы посмотреть, смогу ли я решить первую проблему, но я не знаю, как обновить версию jsp.