尝试在变量名JSTL中连接变量值

时间:2017-10-31 13:25:19

标签: jsp jstl

我是jsp的新手。我有一个场景,我必须循环一些列表并获取循环索引,将其添加到另一个迭代的变量并获取值并将其设置为元素id,我可以从中执行一些javascript函数。但是当我试图实现它时,我得到以下错误

错误

According to TLD or attribute directive in tag file, attribute varStatus does not accept any expressions

我的代码如下:

<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<!-- Some codes in between  -->
<c:forEach var="myItemsList" items="${myItemsList}" varStatus="loop">
    <c:forEach var="myItemsList1"
        items="${myItemsList1}"
        varStatus="loopItr${loop.index}"> <!-- I need the variable like loopItr1 or loopItr2 -->
            <div class="myClass${loop.index}" id="myDetailsBlock_${(loopItr+loop.index).count+1}">
            <!-- SOME OF MY CODE HERE -->
        </div>
    </c:forEach>

</c:forEach>

我很确定我缺少一些语法。请帮助我解决这个问题。谢谢。

1 个答案:

答案 0 :(得分:0)

要考虑的事情不止一件

  1. 您无法在varStatus中指定表达式,它应该是字符串文字。
  2. count此处提及id="myDetailsBlock_${(loopItr+loop.index).count+1}"不存在。
  3. 我建议重新考虑你的解决方案。如果你想要计算某些东西,你可以使用<c:set创建自己的变量并按你喜欢的方式增加。