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.ELException:无法解析表达式[$ {applicationScope.productList [<%=无%>]}]
在正确的方向的任何推送将不胜感激!
答
您可以使用PARAM变量EL(http://www.tutorialspoint.com/jsp/jsp_expression_language.htm)获得请求参数的值。我没有检查,但我认为从字符串到int的转换将由EL自动完成。因此,你可以这样写:
<c:out value="${applicationScope.productList[param.parameter]}"/
其中“parameter”是你想要的特性参数的名称 - 如param.item,param.mobile,param.page等
感谢帕维尔。起初我认为我错误地解释了你的答案 - 但是我特别喜欢把param.item作为数组索引,我猜这个字符串被自动强制为一个int。我已经编辑了回复,以反映任何人遇到此线索时寻求相同帮助的情况。我会将您的回复标记为已接受。 – mediantis 2015-04-03 20:00:06