2016-01-26 88 views
0

我按给定顺序在列表中有一个句子数组,另一个数组以第一个数组的另一个句子的顺序排列。我在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”应该突出显示为红色,并且“小羊肉”应该突出显示。黄色。

回答

0

我一直无法找到一个解决方案,使得每行应用渐变主要是因为从上到下或从左到右应用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> 

此外,我不得不称赞这个答案。

https://stackoverflow.com/questions/35022587/highlight-text-in-jstl