按给定顺序突出显示数组的元素

Highlight elements of an array in a given order

我有一个列表中的句子数组,顺序为给定顺序,另一个数组包含第一个数组中的部分句子,顺序为另一个顺序。我在 spring MVC 框架内。

ArrayList<String> first = new ArrayList<>();
ArrayList<String> second = new ArrayList<>();
Integer len1;
Integer len2;

first.add("Marry ");
first.add("had ");
first.add("a ");
first.add("little lamb.");
second.add("Marry "); //first added
second.add("little lamb."); //second added

len1=first.length();
len2=second.length();
model.addAttribute("first", first);
model.addAttribute("second", second);
model.addAttribute("len1",len1);
model.addAttribute("len2",len2);

我想要做的是显示第一个数组的元素并突出显示与第二个数组匹配的元素,但要突出显示以便我可以通过使用渐变来分辨哪个是第一个元素,哪个是第二个元素。 我像这样显示第一个数组。

 <c:forEach var="i" items="${first}" end="${len1}">
 <c:out value="${i}"/>
 </c:forEach>

我尝试在 forEach 中这样做,但我不确定这是不是这样做的方式,至少不是渐变。 最终结果应该是

玛丽生了一只小羊羔

如果渐变是从红色到黄色,那么 "Marry" 应该突出显示红色和 "little lamb." 黄色。

我一直没能找到一个解决方案,使渐变应用于每一行,主要是因为 css 渐变是从上到下或从左到右应用的,如果文本中断一列,渐变将在整个块上从左到右应用,而不是让每一行都带有它的渐变。 我改用粗体。

这就是解决方案。

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

另外,我必须相信这个答案。