Я перебираю список элементов и хочу получить параметр запроса на основе индекса элемента. Я мог бы легко сделать это с помощью скриптлета, как это сделано ниже, но я бы хотел использовать язык выражений.
<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>
<c:set var="index" value="item_${count.index}" /> ${param[index]}
К сожалению, + не работает для строк, как в простой Java, поэтому
${param["index_" + count.index]}
не работает; - (
Список неявных объектов содержится в документации по языку выражений в документации по J2EE 1.4. Вы ищете param .
Вам просто нужно использовать обозначение «квадратные скобки». С помощью тега JSTL вы можете сгенерировать правильное имя параметра:
<c:forEach var="item" items="${list}" varStatus="count"> <c:set var="paramName">item_${count.index}</c:set> ${param[paramName]} </c:forEach>
Краткий ответ:
${param.item_[count.index]}