[英]How to access Java session object through JavaScript stored outside of JSP
[英]How to access the array variables stored in session from within the javascript?
我有一個servlet,我在會話范圍內存儲了一個數組,如下所示,
session.setAttribute("pageNames",pageNames);
現在這個servlet將controll傳遞給一個JSP頁面,該頁面在加載時調用函數'getPage()',如下所示,
<body id="qwer" onload="getPage('<%=(String[])session.getAttribute("pageNames")%>'>
'getPage()'的javascript代碼如下,
function getPage(pageNamesArray)
{
var ele = document.getElementById('app');
for(var i=0;i<10;i++)
{
var imageLabel = document.createElement("label");
imageLabel.innerHTML = pageNamesArray[i];
ele.appendChild(imageLabel);
}
}
我希望我會從會話中存儲的'pageNames'數組中獲取前10個值的名稱,但我得到以下輸出,
[Ljava.lang.String; @ 17a8undefinedundefinedundefined
我測試了我的servlet中的代碼,發現數組'pageNames'填充了40多個值。
任何人都可以建議我如何從JSP頁面中打印數組pageNames的值? 提前致謝。
您的方法是正確的,但這不是您打印數組元素的方式。 您必須遍歷數組並輸出組件。
為了保持干凈,你可以創建另一個javascript函數,如:
function getPageNames() {
var pageNamesArray = [
<c:forEach var="p" items="${sessionScope.pageNames}" varStatus="status">
${status.first ? '' : ','} "${p}"
</c:forEach>
];
return pageNamesArray;
}
那么:
<body id="qwer" onload="getPage(getPageNames())">
我上面做的是創建一個帶有頁面名稱的Javascript數組,輸出如下:
function getPageNames() {
var pageNamesArray = [
"page1"
,"page2"
,"etc"
];
return pageNamesArray;
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.