簡體   English   中英

如何從javascript中訪問存儲在session中的數組變量?

[英]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;
}

我正在使用JSTL ,但您也可以使用scriptlet 想法是遍歷數組。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM