神秘的 Eclipse JSP 验证错误

2022-08-31 21:18:45

Eclipse(Helios)偶尔会将看起来有效的JSP内容标记为有错误。当我使用<c:if>标签时,它似乎经常会中断。例如,在仅包含以下内容的 JSP 中:

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

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

</body>
</html>

编译后,“问题”选项卡中显示以下错误:

  • 不兼容的操作数类型字符串和整型行 1
  • javax.servlet.jsp.JspException 无法解析为类型行 1
  • javax.servlet.jsp.PageContext 无法解析为类型行 1

代码运行正常。JSP 的验证是否存在问题,我是否遗漏了一些明显的东西,或者这是否表明某些内容设置不正确。


答案 1

好吧,我找到了解决此错误的方法。将其添加到您的 Maven 依赖项(pom.xml):

<!-- dependency to fix JSPServletException -->
    <dependency>
        <groupId>org.apache.tomcat</groupId>
        <artifactId>jsp-api</artifactId>
        <version>6.0.32</version>
        <scope>provided</scope>               
    </dependency>

如果您发现它有用,请发表评论,因为它对我有所帮助。


答案 2

根据注释,我最终关闭了JSP验证的一部分,从而修复了这个问题。

  1. 转到“项目>属性>验证”。
  2. 单击“配置工作区设置...”。
  3. 取消选择 JSP 语法验证器的选项(手动和生成)。

我希望我错过了一些东西,并且有一种方法可以解决这个问题,但我不得不承认JSP验证是垃圾。


推荐