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

问题描述:

这似乎是一个相当简单的问题,但花了半小时阅读SO和其他各种网站后,我仍然无法找到解决方案。JSP使用URL参数作为数组索引

我想从我的URL得到一个参数为指标,用于显示一个数组项:

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

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

我可以通过URL参数获得字符串形式的指数:

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

我不知道,如果下一行是相关的,但我可以将字符串转换为int :

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

不过,我不能串在一起,这些把该参数值转换成int和更换“0”的代码与参数的第一行,所以我可以动态加载的页面内容。

我认为以下是解决方案,但它甚至没有语法上的正确性,所以我没有想法(编辑:错过了原始帖子中的关闭%,因此被编辑)。

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

接收到的错误是

/bookDetail.jsp(行:16,柱:1) “$ {applicationScope.productList [<%=无%>]}” 包含无效表达(词):javax.el.E​​LException:无法解析表达式[$ {applicationScope.productList [<%=无%>]}]

在正确的方向的任何推送将不胜感激!

您可以使用PARAM变量ELhttp://www.tutorialspoint.com/jsp/jsp_expression_language.htm)获得请求参数的值。我没有检查,但我认为从字符串到int的转换将由EL自动完成。因此,你可以这样写:

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

其中“parameter”是你想要的特性参数的名称 - 如param.item,param.mobile,param.page等

+0

感谢帕维尔。起初我认为我错误地解释了你的答案 - 但是我特别喜欢把param.item作为数组索引,我猜这个字符串被自动强制为一个int。我已经编辑了回复,以反映任何人遇到此线索时寻求相同帮助的情况。我会将您的回复标记为已接受。 – mediantis 2015-04-03 20:00:06