1

在java中,我的代码是,

List abcList;   
request.getSession().setAttribute("abc", abcList);

我想用 javascript 访问这个列表,

var myVariable='<%=(List)session.getAttribute("abc")%>';

我没有在 javascript 中获取 list(abcList) 值......

4

4 回答 4

1

您需要将列表序列化为 Javascript 对象。有一些图书馆可以为你做这件事:https ://stackoverflow.com/questions/338586/a-better-java-json-library

于 2013-07-03T10:56:25.760 回答
0

您必须编写将列表打印为 javascript 数组的代码。这可能只是导致

var myVariable='ArrayList@123455'

但你需要的是

var myVariable = ["element1", "element2, ...]

使用 json 序列化库。那些为你打印的。或者写个json打印机,其实挺直接的^^。

于 2013-07-03T10:56:24.847 回答
0

你不能那样做。您必须通过迭代 Java 列表来创建列表。你可以试试这样的...

var myVar = [];
<%
List list = (List)session.getAttribute("abc");
for(int i = 0; i < list.size(); ++i){
    out.println("myVar.push('" + list[i] + "');");
}
%>
于 2013-07-03T10:56:53.023 回答
0

究竟想达到什么目的?请记住,javascript 将在客户端浏览器上执行,而 java 代码将在服务器上。所以你不应该从 javascript 中引用 java 变量。相反,使用 jsp 标签,您只能在服务器上的加载时间获取列表。

于 2013-07-03T10:59:21.850 回答