Таинственные ошибки валидации Eclipse JSP - PullRequest
49 голосов
/ 24 сентября 2010

Eclipse (Helios) иногда отмечает допустимый вид содержимого JSP как имеющий ошибки. Кажется, что он часто ломается, когда я использую тег . Например, в JSP с таким содержимым:

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

<c:if test="${1 == 1}">
something
</c:if>

</body>
</html>

Следующие ошибки отображаются на вкладке «Проблемы» после компиляции:

  • Несовместимые типы операндов String и int line 1
  • javax.servlet.jsp.JspException не может разрешиться в строку типа 1
  • javax.servlet.jsp.PageContext не может разрешиться в строку типа 1

Код работает нормально. Есть ли проблемы с проверкой JSP, я упустил что-то очевидное или это указывает на то, что что-то настроено неправильно.

Ответы [ 16 ]

1 голос
/ 24 сентября 2010

Попробуйте проверить свой путь к классу проекта.Похоже, у вас нет библиотеки JSP в вашем проекте (следовательно, «JspException не может быть разрешена»), или что ваша версия библиотеки не совпадает с версией компилятора JSP.

Библиотекавключен по умолчанию в сервер приложений, на котором вы развертываете свое приложение, поэтому код отлично работает при развертывании.Однако, если во внутреннем компиляторе Eclipse отсутствует библиотека (или у вас неверная версия), редактор Eclipse покажет ошибку, которой нет на сервере приложений.

0 голосов
/ 06 сентября 2016

Для меня, когда я печатал строку вручную, я получал сообщение об ошибке, пока не закрыл тег, но ошибка не исчезла. Я нашел строку кода, которая была похожа, и я удалил нарушающий код, скопировал и вставил хороший код, а затем внес необходимые изменения в тег. Больше ошибок нет !!! Не идеальное решение, но оно сработало для меня.

0 голосов
/ 01 июля 2015

Как многие из вас упоминали, проблема связана с путем сборки и отсутствующими библиотеками.Я нашел очень простое решение этой проблемы сборки.Вот решение: В разделе «Путь сборки Java» в Eclipse перейдите на вкладку «Порядок и экспорт» и убедитесь, что проверены библиотеки «Apache Tomcat v7.0» (или любая версия Tomcat, установленная вами с Eclipse),Это мгновенно решает проблему.Никаких хлопот ни с чем другим.: -)

Нет необходимости отключать проверку в этом случае.

0 голосов
/ 30 января 2014

У меня была та же проблема, но оба jsp-api.jar и servlet-api.jar уже были в пути сборки.Отключение JSP Syntax Validator также не помогло.

Вместо этого мне пришлось отключить JSP Content Validator , оставив включенным проверку синтаксиса.У меня все еще есть подчеркнутый код в моем JSP, но нет красного креста, указывающего на ошибку компиляции, и в этом суть:)

0 голосов
/ 06 февраля 2012

Я также вижу ту же проблему при переходе на Maven (с m2e), получаю сообщение об ошибке типа «javax.servlet.http не может быть разрешено» и некоторые теги Spring предупреждают неопределенное предупреждение. наконец, я обнаружил, что версия java (v1.6) в моей конфигурации сборки отличается от конфигурации фасетов (v1.7). после изменения v1.7 на v1.6 проблема исчезнет.

0 голосов
/ 11 января 2012

Добавление jsp-api.jar в ваш путь к классу сборки исправит это.jsp-api.jar меньше common\lib для кота 5.x

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...