2

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

我试图从另一个 .jsp 页面发送数据,但我不知道如何将其转换为 JavaScript var 以便我能够在我的页面中使用它,我也已经开始使用 JSON 对象,但在我继续之前我只需要一些指导,说明最好的方法是什么。

即:在来自服务器的 .html 或 .jsp 文件上填充 JavaScipt 数组。然后该数组将用于 Google Maps API。

如果您有任何问题,请告诉我:

谢谢

4

2 回答 2

3

如果是硬编码的,为什么不直接把它变成 JS 变量呢?

var foo = [{
    "name1": "value1a",
    "name2": "value2a"
},{
    "name1": "value1b",
    "name2": "value2b"
}];

或者,如果它在 Java 端进行了硬编码,并且您也打算在 JS 端使用它,则使用许多可用的 JSON 序列化器/解析器之一将 Java 对象转换为 JSON。在json.org的底部,您可以找到 Java 中所有可用 JSON API 的概述。其中之一是谷歌 Gson。例如,它能够将 a 转换为List<SomeBean>JSON 字符串,如下所示

String jsonString = new Gson().toJson(someBeans);

然后你可以让 JSP 打印它,就好像它是一个 JS 变量一样,假设它被存储为一个请求属性:

var foo = ${jsonString};
于 2012-07-02T16:20:32.620 回答
1

这很简单:

  1. 您必须确保您的 JSP 生成正确的 JavaScript 作为输出。
  2. 包括带有<script>标签的 JSP(即 JSP 需要通过 URL 访问;将该 URL 放入src属性中)。

JSP 代码示例:

var data = [<% ...generate array elements here... %>];

这将允许您访问data之后执行的所有 JavaScript 中的变量。在您的情况下,您会将脚本作为页面中的第一件事包含在内,以便其他所有脚本都可以使用它。

巧妙的技巧:添加一个查询参数来指定变量名:

var <%=request.getParameter("name") %> = [<% ...generate array elements here... %>];

并将其包含在

<script src="...url...?name=data" type="text/javascript">
于 2012-07-02T16:17:56.007 回答