如何在JSTL中用方括号编写表达式?

时间:2015-09-01 10:17:22

标签: jsp spring-mvc jstl expression

以下表达式即使在运行时也会返回错误:

<c:set value="${MoneyForm.money.policy.policies[${loopIndex-1}].amount}" var="amountEuro" />

 javax.el.ELException: Failed to parse the expression       

此声明介于“&lt; for:each&gt;”之间循环使用loopIndex-1。

有人可以帮忙纠正吗?请提供更精确的解决方案,因为我需要对大约20 - 30个对象进行相同的操作

1 个答案:

答案 0 :(得分:2)

您有嵌套的EL,这不是有效的语法。不需要用大括号再次封装looindex-1

尝试

${MoneyForm.money.policy.policies[loopIndex-1].amount}

如果您的c:forEach如下所示

<c:forEach items="${Collection}" var="item" varStatus="loopindex">
</c:forEach>

此处,如果您要访问基于零的索引,请使用loopindex.index,如果您要访问基于1的索引,请使用loopindex.count,同时使用var="item",为您提供当前项目正在迭代的集合