15

我正在遍历一个项目列表,我想根据项目的索引获取一个请求参数。我可以使用如下所示的 scriptlet 轻松完成,但我想使用表达式语言。

<c:forEach var="item" items="${list}" varStatus="count">

   <!-- This would work -->
   <%=request.getParameter("item_" + count.index)%>

   <!-- I'd like to make this work -->
   ${param.?????}

</c:forEach>
4

4 回答 4

17
<c:set var="index" value="item_${count.index}" />
${param[index]}

不幸的是, + 不适用于普通 Java 中的字符串,所以

${param["index_" + count.index]}

不工作;-(

于 2009-01-19T18:54:55.880 回答
4

J2EE 1.4 文档的表达式语言文档部分中有一个隐式对象列表。您正在寻找param

于 2009-01-19T19:01:14.683 回答
3

您只需要使用“方括号”表示法。通过使用 JSTL <c:set> 标记,您可以生成正确的参数名称:

<c:forEach var="item" items="${list}" varStatus="count">
  <c:set var="paramName">item_${count.index}</c:set>
  ${param[paramName]}
</c:forEach>
于 2009-01-19T19:46:55.463 回答
-1

简短的回答:

${param.item_[count.index]}
于 2011-03-23T09:31:21.287 回答