2015-04-03 54 views
0

這似乎是一個相當簡單的問題,但花了半小時閱讀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 [<%=無%>]}]

在正確的方向的任何推送將不勝感激!

回答

0

您可以使用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