JSP使用URL参数作为数组索引

时间:2015-04-03 12:33:42

标签: jsp

这似乎是一个非常简单的问题,但在花了半个小时阅读SO和其他各种网站后,我仍然无法找到解决方案。

我试图从我的网址获取一个参数作为索引来显示数组项:

这将显示我的第一个数组元素(产品列表):

<c:out value="${applicationScope.productList[0]}"/>

我可以通过URL参数以字符串的形式获取索引:

<%= request.getParameter("item") %>

我不确定下一行是否相关,但我可以将字符串转换为int:

<%int no = Integer.parseInt(request.getParameter("item")); %>

但我无法将这些字符串串起来将该参数值转换为int并替换&#34; 0&#34;在带有参数的第一行代码中,我可以在页面中动态加载内容。

我认为以下是解决方案,但它在语法上是不正确的,所以我没有想法(编辑:错过原帖中的结束%。相应地编辑)。

<%int no = Integer.parseInt(request.getParameter("item")); %>
<c:out value="${applicationScope.productList[ <%=no%> ]}"/>

收到的错误是

  

/bookDetail.jsp(line:16,column:1)&#34; $ {applicationScope.productList [&lt;%= no%&gt;]}&#34;包含无效表达式:javax.el.E​​LException:无法解析表达式[$ {applicationScope.productList [&lt;%= no%&gt;]}]

非常感谢任何正确方向的推动!

1 个答案:

答案 0 :(得分:0)

您可以在 EL http://www.tutorialspoint.com/jsp/jsp_expression_language.htm)中使用 param 变量来获取请求参数的值。我没有检查,但我认为从String转换为int将由 EL 自动完成。结果你可以写:

<c:out value="${applicationScope.productList[param.parameter]}"/

其中'parameter'是您想要的参数的名称 - 例如param.item,param.mobile,param.page等。