JSTL foreach 显示 var 名称而不是它的值

JSTL foreach displays the var name instead of it's value

你好我正在学习Java EE,现在在JSTL部分。我正在尝试使用 foreach 循环显示变量值,但结果始终是变量名而不是它的值。 我在网上搜索,但没有发现任何似乎有用的东西。 这是我的 index.jsp 代码:

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

<html>
    <!-- Latest compiled and minified CSS -->
    <link rel="stylesheet" 
      href="https://maxcdn.bootstrapcdn.com/bootstrap/3.4.1/css/bootstrap.min.css">

    <!-- jQuery library -->
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script>

    <!-- Latest compiled JavaScript -->
    <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.4.1/js/bootstrap.min.js"></script>
    <body>

        <c:forEach var="i" begin="0" end="10">
            ${i}
            <c:if test="${i%2==0}">
                <p class="text-primary"><c:out value="${i}"/>></p>
            </c:if>
            <c:if test="${i%2!=0}">
                <p class="text-success"><c:out value="${i}"/>></p>
            </c:if>
        </c:forEach>
    </body>
</html>

由此给出的结果是:

P.S: 我正在使用 maven 并且导入了 jstl jar 我正在使用 1.2 版本。我也尝试了不同的版本,但都是徒劳的。 我使用的是 Intellij Ultimate 版本,此代码在 Eclipse 上运行良好,但在 Intellij 上运行不佳。 感谢您的帮助!

您通常使用标签显示它:<%= i %>,或使用 <c:out value="i" />.

我通过将 <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %> 更改为 <%@ taglib uri="http://java.sun.com/jstl/core" prefix="c" %> 解决了这个问题,但是这两个链接之间有什么区别,为什么在更改时可以正常工作? 谢谢。