Pergunta

Eu estou looping através de uma lista de itens, e eu gostaria de ter um parâmetro de solicitação com base no índice do item. Eu poderia facilmente fazê-lo com um scriptlet como feito abaixo, mas eu gostaria de usar a linguagem de expressão.

<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>
Foi útil?

Solução

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

Infelizmente, + não funciona para cordas como em Java puro, então

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

não funciona; - (

Outras dicas

Há uma lista de objetos implícitos na seção de documentação Expression Language do 1.4 documentação J2EE. Você está procurando param .

Você só precisa usar a notação "colchetes". Com o uso de um JSTL tag você pode gerar o nome do parâmetro correto:

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

Resposta curta:

${param.item_[count.index]}
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top