JSTL forEach循环下一个索引值的最佳方式

时间:2016-09-17 10:03:11

标签: jsp jstl

我有一个请求标头映射,其中一个标头键值再次包含一个字符串,如下所示。

headerkey = abc=227,de_f=AE,ghf=ABCD,ijk=25.25,lmn=55.28,opq=GMT+4,rst=AS,uvw=vhigh,xyz=5000

现在我想在优化的循环条件中仅获取 de_f 值,即 AE

  

<c:forEach var="nextHeader" items="${header}"> <c:if test = "${nextHeader.key == 'headerkey'}"> <c:set var="headerkeystring" value="${nextHeader.value}"/> <c:set var="splitstring" value="${fn:split(headerkeystring, ',')}" /> <c:forEach var="i" items="${splitstring}"> <c:set var="subsplit" value="${fn:split(i, '=')}" /> <c:forEach var="k" items="${subsplit}"> <c:if test = "${k == 'de_f'}"> <c:out value="${k + 1}" /> <!-- Expecting here to print "AE" --> </c:if> </c:forEach> </c:forEach> </c:if> </c:forEach>

1 个答案:

答案 0 :(得分:0)

更改内部 c:forEach c:out ,如下所示,应该给出结果

<c:forEach var="k" items="${subsplit}" varStatus="status">
<c:if test = "${k == 'de_f'}">
<c:out value="${subsplit[status.index+1]}" /> <!-- This Should print "AE" -->
</c:if>
</c:forEach>