2017-04-13 86 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