将数据传递到.jsp Javascript数组中

时间:2012-07-02 16:08:02

标签: javascript json jsp google-maps-api-3

我将数据硬编码到.jsp文件中。我想要做的是使用从服务器发送的数据填充JavaScript数组。

我试图从另一个.jsp页面发送数据,但是我无法弄清楚如何将它转换为JavaScript var以便我能够在我的页面中使用它,我也开始使用JSON对象,但是在我继续之前,我只需要一些指导,了解最佳方法。

即:从服务器填充.html或.jsp文件中的JavaScipt数组。然后,该数组将用于Google Maps API。

如果您有任何疑问,请与我们联系:

感谢

2 个答案:

答案 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)

这很简单:

  1. 您必须确保您的JSP生成正确的JavaScript作为输出。
  2. 包含带有<script>标记的JSP(即,需要使用URL访问JSP;将该URL放入src属性中)。
  3. 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">