Java: как отладить неверное объявление JSTL? - PullRequest
4 голосов
/ 25 мая 2010

Я видел подобные проблемы в SO (и в сети в целом) довольно много раз. Например здесь:

Пространства имен JSPX не видны для функций EL?

Ранее сегодня я пытался сделать это на JSP (обычный .jsp, а не .jspx), потому что я тупо вырезал / вставил пример, найденный в сети:

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

Тогда мой .jsp выдал пустую страницу. Нет сообщений об ошибках в журнале Tomcat. Нет, ничего. Просто пустая страница.

Хотя конечно (я с сарказмом здесь), правильная строка была такой:

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

Отсутствовал "jsp /" (я обнаружил подсказку в еще одном вопросе SO).

Так что, очевидно, такие проблемы являются общими.

Я не могу поверить, что вам нужно подождать, пока что-то "не сработает", чтобы узнать, что у вас есть ошибка, и я, честно говоря, немного озадачен количеством вопросов, найденных в сети (и здесь, на SO) где ответ в основном "исправить вашу декларацию".

Мой вопрос здесь прост: откуда вы знаете, что это проблема с декларацией? Какой мыслительный процесс требуется здесь, чтобы диагностировать и устранять такие проблемы? Есть ли здесь инструменты, которые могут помочь? (Я не знаю, как, скажем, IntelliJ IDEA или Eclipse или Emacs в режиме nxml, предупреждающих вас в реальном времени, что объявленный URI недействителен?)

Ответы [ 2 ]

2 голосов
/ 25 мая 2010

http://java.sun.com/jstl/core является действительным объявлением JSTL - это URI для ядра JSTL 1.0 . http://java.sun.com/jsp/jstl/core - это URI для ядра JSTL 1.1 .

2 голосов
/ 25 мая 2010

Просмотреть исходный код страницы в веб-браузере, если вы видите, что теги не разбираются, то taglib не найден / не загружен.

Я не уверен, что понимаю ваше последнее утверждение, но Eclipse выдает здесь ошибки с красной линией, если taglib не найден в classpath.

...