首先,我的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在我的语法上出错,即使代码有效。
我已阅读JSTL in IntelliJ gives errors in JSP
和
https://www.jetbrains.com/idea/features/jsp_editor.html
仍然没有运气。
答案 0 :(得分:44)
首先将其添加到&#34; .jsp&#34;的顶部文件:
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
它仍然会出现语法错误,但你可以通过添加&#34; javax.servlet:jstl:1.2&#34;来解决这个问题。 (没有引号)作为模块依赖。为此,请按照下列步骤操作:
javax.servlet:jstl:1.2
,然后按确定,它将下载并添加上述库作为模块。答案 1 :(得分:4)
如果您使用的是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>
答案 2 :(得分:1)
就我而言,按照Shams UI Azeem提供的说明进行操作之后,我需要将JSTL库添加到WAR Exploded工件中。我所做的是:
转到项目结构。在项目设置下,选择工件。在菜单框的底部,应该有一条消息,指出所使用的JSTL库未包含在WAR中。单击此消息旁边的修复按钮。选择“将javax.servlet:jstl:1.2添加到工件”。
答案 3 :(得分:0)
在您的pom.xml中添加以下依赖项
<!-- https://mvnrepository.com/artifact/javax.servlet/jstl -->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jstl</artifactId>
<version>1.2</version>
</dependency>
答案 4 :(得分:0)
根据 Maven 存储库,javax.servlet:jstl 已移至 javax.servlet.jsp.jstl,但后者未解决 URI 解析问题。< /p>
添加旧的 javax.servlet:jstl 依赖项解决了这个问题。