jstl <c: if> теги не работают в jsp файле, получая ошибку в Tomcat 7

У меня проблема с использованием тега JSTL<c:if> в файле JSP. В основном я должен сделать это как 2 вопроса, хотя они связаны между собой.

The first question:

В моем 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.

Ответы на вопрос(1)

Ваш ответ на вопрос