在 JSTL 中突出显示文本

Highlight text in JSTL

我需要使用 JSTL 显示文本。有两个数组。

数组a [一、二、三、九] 数组 b [九、一、二]

显示的文本应该将 a 中也存在于 b 中的元素加粗,其余保持正常

一个两个,三个,9个

<c:forEach var="i" items="${a}">
              <c:forEach var="j" items="${b}">
                  <c:choose>
                      <c:when test="${i==j}">
                          <strong><c:out value="${i}"/></strong>
                      </c:when>
                      <c:when test="${i!=j}">
                           <c:out value="${i}"/>
                      </c:when>
                  </c:choose>
              </c:forEach>
          </c:forEach>

我错过了什么?代码显示一次高亮然后正常显示3次

第二个 <c:when> 应该是 <c:otherwise>.

您可能打算将 <strong></strong> 放在 <c:out> 之一附近

此外,您的代码将输出 4 * 3 = 12 个值。这是你想要的吗?
如果没有,也许将 b 更改为 ListSet,并使用 b.contains(i) 将是您想要的。


更新

如果 bCollection,最好是 Set,那么这样做:

<c:forEach var="i" items="${a}">
    <c:choose><c:when test="${b.contains(i)}">
        <strong><c:out value="${i}"/></strong>
    </c:when><c:otherwise>
        <c:out value="${i}"/>
    </c:otherwise></c:choose>
</c:forEach>