IntelliJ 和 JSP/JSTL 无法解析 tomcat7 中 JSTL 的标签库

新手上路,请多包涵

首先,我的 JSTl 代码可以在我的服务器上运行,因为我在 tomcat7 的 Lib 文件夹中有正确的 Jar 文件。这确实是一个 IDEA 问题。我的问题归结为我将相同的 jar 文件放在 IntelliJ 文件目录中的位置。

我在 IntelliJ 和 JSTL 中遇到了错误。

我的问题是当我使用

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

它导致无法使用 uri 解析 taglib。我尝试了不同的 Jar 文件,我知道我必须为我的 servlet 更正版本。

我在 Ubuntu Server 15.04 和 IntelliJ 14.1.3 上运行 tomcat7。

我尝试通过项目结构导入 jar 文件,并将其包含在不同的地方,但在重新构建项目、关闭并重新打开 IDEA 后仍然出现相同的错误。

此示例代码在部署到 tomcat 时运行,但 IntelliJ 不断出错。

 <table border="1">
    <c:forEach var="a" items="${data}">
        <tr>
            <td>${a}</td>
        </tr>
    </c:forEach>
</table>

<c:forEach begin="0" end="255" var="i">
    <span style='color:rgb(
        <c:out value="${i}"/>,
        <c:out value="${i}"/>,
        <c:out value="${i}"/>);'>
        <c:out value="${i}"/></span> <br />
</c:forEach>

我想知道如何阻止 IntelliJ 在我的语法上给出错误,即使代码有效。

我读过 IntelliJ 中的 JSTL 在 JSP 中给出错误

https://www.jetbrains.com/idea/features/jsp_editor.html

仍然没有运气。

原文由 dsadnick 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 665
2 个回答

首先将其添加到 .jsp 文件的顶部:

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

它仍然会给出语法错误,但您可以通过添加 javax.servlet:jstl:1.2 作为模块依赖项来修复该错误。为此,请按照下列步骤操作:

  1. 单击您的项目名称并按 F4 调出模块设置对话框。
  2. 然后转到 modules 部分中的 dependencies 选项卡。
  3. 单击绿色 + 图标 来自Maven。
  4. 在搜索栏中搜索 javax.servlet:jstl:1.2 并按确定,它将下载并添加上述库作为模块。
  5. 现在你不应该有任何类型的语法错误。

原文由 Shams Ul Azeem 发布,翻译遵循 CC BY-SA 4.0 许可协议

如果您使用的是 Maven,请在 <dependencies></dependencies> 标记内的 pom.xml 中添加以下代码

<!-- https://mvnrepository.com/artifact/javax.servlet/jstl -->
<dependency>
    <groupId>javax.servlet</groupId>
    <artifactId>jstl</artifactId>
    <version>1.2</version>
</dependency>

原文由 Sineth Lakshitha 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题