jstl <c: if> tagi nie działają w pliku jsp, uzyskując błąd w tomcat 7

Mam problem z używaniem tagu jstl<c:if> w pliku jsp. Zasadniczo powinienem to zrobić jako 2 pytania, chociaż są ze sobą powiązane.

Pierwsze pytanie:

W moim WEB-INF / lib umieściłem plik jstl 1.2.jar

W moim pliku jsp umieściłem to<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>.

W moim pliku jsp używam<c:if> zrobić coś. Jeśli warunek jest prawdziwy, wyświetli specjalny komunikat

Zasadniczo zawartość w środku<c:if> nie działa, ponieważ komunikat nie jest wyświetlany, nawet jeśli warunek jest prawdziwy.

Ale jeśli zmieniłbym używać starszej przestrzeni nazw,<%@ taglib prefix="c" uri="http://java.sun.com/jstl/core"%>. Inne nie są zmieniane, a następnie działa tag if, ponieważ wyświetlany jest komunikat wewnątrz tagu if.

Moje pierwsze pytanie brzmi: dlaczego muszę używać / jstl zamiast / jsp / jstl w przestrzeni nazw. Używam jstl1.2.jar. więc mam używać nowszego uri dla 1.2. jednak starsze uri działają, ale nie nowsze.

Drugie pytanie:

Ignoruję pierwsze pytanie, które mam, i używam / jstl jako mojej przestrzeni nazw tylko dlatego, że sprawia, że ​​moja aplikacja działa tak, jak chcę. Jednak po wdrożeniu mojej aplikacji internetowej w tomcat 7.X pokazuje wyjątki w następujący sposób:

org.apache.jasper.JasperException: /mywebapp.jsp (wiersz: 35, kolumna: 10) Zgodnie z dyrektywą TLD lub dyrektywą atrybutów w pliku tagów test atrybutów nie akceptuje żadnych wyrażeń org.apache.jasper.compiler.DefaultErrorHandler.jspError ( DefaultErrorHandler.java:42)

w linii /mywebapp.jsp: 35, kolumna: 10, czyli tag <c: if>.

Jeśli zmienię przestrzeń nazw z <% @ taglib prefix = "c" uri = "http://java.sun.com/jstl/core"%> na <% @ taglib prefix = "c" uri = "http: / /java.sun.com/jsp/jstl/core "%>, może zostać pomyślnie wdrożony w tomcat, ale funkcjonalność wewnątrz znacznika <c: if> nie jest użyteczna. inne kody spoza<c:if> jednak praca z tagami.

Jestem więc bardzo zdezorientowany i naprawdę chcę wiedzieć, jak to naprawić.

Przy okazji używam serwletu 2.5, jsp 2.0, jstl 1.2. Próbowałem uaktualnić jsp2.0 do jsp2.1, aby sprawdzić, czy mogę naprawić pierwszy problem, ale nie mam pojęcia, jak zaktualizować wersję jsp.

questionAnswers(1)

yourAnswerToTheQuestion