web-dev-qa-db-ja.com

JSP ELを使用してリクエストパラメータに動的にアクセスするにはどうすればよいですか?

アイテムのリストをループしているのですが、アイテムのインデックスに基づいてリクエストパラメータを取得したいと思います。以下のようにスクリプトレットで簡単にできますが、表現言語を使いたいです。

<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>
15
ScArcher2
<c:set var="index" value="item_${count.index}" />
${param[index]}

残念ながら、+はプレーンJavaのように文字列に対しては機能しないため、

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

動作しません;-(

17

J2EE 1.4ドキュメントの Expression Languageドキュメント セクションに暗黙オブジェクトのリストがあります。あなたはparamを探しています。

4
McDowell

「角括弧」表記を使用する必要があります。 JSTL <c:set>タグを使用すると、正しいパラメーター名を生成できます。

<c:forEach var="item" items="${list}" varStatus="count">
  <c:set var="paramName">item_${count.index}</c:set>
  ${param[paramName]}
</c:forEach>
3
evnafets