在 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
更改为 List
或 Set
,并使用 b.contains(i)
将是您想要的。
更新
如果 b
是 Collection
,最好是 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>
我需要使用 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
更改为 List
或 Set
,并使用 b.contains(i)
将是您想要的。
更新
如果 b
是 Collection
,最好是 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>