java - 如何将 Java 数组内容传递到 javascript 数组中?

标签 java javascript html

<%
    //Retrieving the Server list from dispatcher
    Collection<Server> svr = (Collection<Server>)request.getAttribute("stuff");

    ArrayList<String> serverIds = new ArrayList<String>();

    for(Server i : svr )
      serverIds.add(i.getId());

    String [] svrIds = new String[svr.size()];
    serverIds.toArray(svrIds);

%>

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<script type="text/javascript">

    var instanceIds = new Array(<%=svrIds%>);

    //test somethings in there
    alert(instanceIds[0]);


</script>
</head>
</html>

最佳答案

如果您想使用 Java 代码为 Javascript 数据结构编写代码,最简单的方法可能是使用 Java 的 JSON 库。 JSON 字符串可以解释为 Javascript 代码。

如果你想使用 JSON.simple,那么这里有如何生成 JSON 字符串的例子:

http://code.google.com/p/json-simple/wiki/EncodingExamples

在您的代码中,您应该能够执行如下操作:

var instanceIds = <%= JSONValue.toJSONString(serverIds) %>

您不需要将 ArrayList 转换为 Java 数组。请注意,此函数对您传递给它的类型很敏感;数组实际上在这种情况下不起作用。

此外,为此您需要安装 JSON.simple JAR 文件并在您的 JSP 中导入 org.json.simple.JSONValue

关于java - 如何将 Java 数组内容传递到 javascript 数组中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7192457/

相关文章:

javascript - 使用 AjaxFileUpload 函数

javascript - 在javascript中合并数组中的 map 数据

javascript - 在 angularjs 中使用 office-ui-fabric-js

Javascript 打开新窗口并更改标题文本

html - 设置页脚宽度

java - OpenGL 纹理无法正确显示

java - 强制 IntelliJ 在 NonNull 违规时编译失败

html - 如何使表格响应? (堆栈列)

java - 递归压缩一个目录,其中包含 Java 中任意数量的文件和子目录?

java app 开发报错 is not enclosing class