2017-04-13 82 views
0

喜歡標題說我想從我的Java Servlet讀取數組。我正在嘗試讀取我的Java腳本文件中的數組。從javascript servlet中讀取數組javascript

Java servlet代碼: String graphData [] = dbHandler.select(attributes); //用數據庫中的數據填充數組。 request.setAttribute(「graphData」,graphData);

RequestDispatcher dispatcher = request.getRequestDispatcher("/displayData.jsp"); 
dispatcher.forward(request, response); 


    <script type="text/javascript"> 
     var graphData = ['${graphData}']; 
     var graphData= pageContext.getAttribute("graphData"); 
     var graphData = document.getElementById("graphData"); 
     var GraphData = ['${graphData}']; 
     log("test: " + graphData); 
    </script> 

我試過所有這些選項,但都沒有工作。 有人可以告訴我什麼正確的方法是從jsp頁面中的Java servlet讀取數組?

在此先感謝!

編輯:

什麼,我能做的就是用這個代碼打印出從JSP頁面上的陣列中的數據(在頭):

<c:forEach items="${graphData}" var="temp"> 
    <c:out value="${temp}"/><br /> 
    </c:forEach> 

但我想用從數據在我的JS代碼中的數組。這由於某種原因不起作用。

+0

你想從JSP頁面讀取數據JS?最好能填在某些屬性的詳細信息並提交表單通過發送給servlet –

+0

@ShivamAggarwal:他明確提到他從js代碼中讀取servlet的屬性。 – Ankit

回答

0

您可以使用這樣

<script> 
    var graphData = [ 
    <c:forEach items="${graphData}" var="graph"> 
     '<c:out value="${graph}" />', 
    </c:forEach> 
    ]; 
    console.log(graphData); 
</script> 
+1

我可以多謝先生! – kaspertje100

+1

非常乾淨的代碼 – Ankit

0

運行此行後,你做了什麼輸出,

var test = <%=request.getAttribute("graphData")%>; 

or 

var test = ${graphData}; 

注:雖然它不使用像graphData同名您使用了太大的差別(在輸出方面),但我更喜歡使用不同的名字,如graphDataJS

+0

適用於:var test = <%= request.getAttribute(「graphData」)%>; 我得到:var test = [Ljava.lang.String; @ 26d719;在chrome(f12)的調試模式下,它也出現此錯誤: 未捕獲的SyntaxError:意外的令牌; – kaspertje100

+0

同樣適用於:var test = $ {graphData}; 在鉻調試模式(f12)中顯示爲: var test = [Ljava.lang.String; @ 1dba1af; 我得到未捕獲的SyntaxError:意外的令牌; – kaspertje100