2009-01-19 5 views
15

Estoy recorriendo una lista de elementos, y me gustaría obtener un parámetro de solicitud basado en el índice del artículo. Podría hacerlo fácilmente con un scriptlet como se hace a continuación, pero me gustaría usar el lenguaje de expresión.¿Cómo accedo dinámicamente a los parámetros de solicitud con 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> 

Respuesta

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

Desafortunadamente, + no funciona para las cadenas como en la llanura de Java, por lo

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

no funciona ;-(

+1

he corregido la referencia a params. se supone que es param. Pero tu respuesta me dio lo que necesitaba para que funcione. ¡Gracias! – ScArcher2

+0

Puede hacer algo como esto: $ {param ["index _". Concat (count.index)]} – jpaoletti

4

No es una lista de objetos implícitos en la sección Expression Language documentation de la documentación de J2EE 1.4. Está buscando param.

+0

Gracias lo busqué y me di cuenta de que estaba accediendo a algo incorrecto. Lo principal que me faltaba era la sintaxis del paréntesis para acceder a una propiedad. – ScArcher2

3

Solo necesita usar la notación de "corchetes". Con el uso de un JSTL < c: set > etiqueta que puede generar el nombre de parámetro correcto:

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

Respuesta corta:

${param.item_[count.index]} 
Cuestiones relacionadas