簡體   English   中英

如何將數組列表從servlet傳遞到javascript?

[英]How to pass arraylist from servlet to javascript?

我通過從servlet傳遞一個arraylist,方法是在屬性中設置它並將其轉發到jsp

Servlet:

ArrayList <String> mylist = new ArrayList <String>();

mylist.add("Superman");

mylist.add("batman");

mylist.add("flash");

request.setAttribute("mylist", mylist);

request.getRequestDispatcher("Welcome.jsp").forward(request, response);
response.sendRedirect("Index.jsp");

Index.jsp

function doPopulateList(obj)
    {

     alert("HELLO"+obj.id +obj.name+obj.value);
     var select = document.getElementsByClassName("my_dropdown1"); 
     alert("all good");
     //var list = new Array();
      var list = '${mylist}'; 
      //var options = ["1", "2", "3", "4", "5"]; 

     alert("All good till arraylist");
     for(var i=0;i<list.length;i++)
         {

         alert(list[i]);

         }

當我嘗試將arraylist值放在警報框中時,我收到類似

[
S
U

我希望警報像

Superman
batman
flash

如果這是重復的問題,請原諒我。

首先,您需要遍歷服務器端列表,並將每個元素添加到JS數組中,然后servlet才不將響應發送到客戶端。

因此,這可能有效:

<script>
   var list = [
      <c:forEach items="${mylist}" var="hero">
        '<c:out value="${hero}" />',  
      </c:forEach>
   ];
   console.log(list);
</script>

到達客戶端的不是數組而是字符串。 因此,如果循環,則循環的是字符串的單個字符。

您需要將字符串轉換為JSON-Object才能循環列表項。

var list = JSON.parse('${mylist}');

暫無
暫無

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

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