我将数据硬编码到.jsp文件中。我想要做的是使用从服务器发送的数据填充JavaScript数组。
我试图从另一个.jsp页面发送数据,但是我无法弄清楚如何将它转换为JavaScript var以便我能够在我的页面中使用它,我也开始使用JSON对象,但是在我继续之前,我只需要一些指导,了解最佳方法。
即:从服务器填充.html或.jsp文件中的JavaScipt数组。然后,该数组将用于Google Maps API。
如果您有任何疑问,请与我们联系:
感谢
答案 0 :(得分:3)
如果它是硬编码的,为什么不直接将它变成JS变量呢?
var foo = [{
"name1": "value1a",
"name2": "value2a"
},{
"name1": "value1b",
"name2": "value2b"
}];
或者如果它在Java端硬编码并且您打算在JS端使用它,那么使用许多可用的JSON序列化器/解析器之一将Java对象转换为JSON。在json.org的底部,您可以找到Java中所有可用JSON API的概述。其中一个是Google Gson。它能够将List<SomeBean>
转换为JSON字符串,如下所示
String jsonString = new Gson().toJson(someBeans);
然后你可以让JSP打印它,好像它是一个JS变量,假设它存储为一个请求属性:
var foo = ${jsonString};
答案 1 :(得分:1)
这很简单:
<script>
标记的JSP(即,需要使用URL访问JSP;将该URL放入src
属性中)。JSP代码示例:
var data = [<% ...generate array elements here... %>];
这将允许您访问之后执行的所有JavaScript中的变量data
。在您的情况下,您将包含脚本作为页面中的第一个内容,以便每个其他脚本都可以使用它。
巧妙处理:添加查询参数以指定变量名称:
var <%=request.getParameter("name") %> = [<% ...generate array elements here... %>];
并将其包含在
中<script src="...url...?name=data" type="text/javascript">