如何从javascript访问java.util.List会话

How to access java.util.List session from javascript?

本文关键字:util List 会话 java 访问 javascript      更新时间:2023-09-26

在java中,我的代码是

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

我想用javascript、访问这个列表

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

我没有得到javascript中的list(abcList)值。。。。。。

您需要将列表序列化为Javascript对象。有一些库可以为您做到这一点:https://stackoverflow.com/questions/338586/a-better-java-json-library

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

var myVar = [];
<%
List list = (List)session.getAttribute("abc");
for(int i = 0; i < list.size(); ++i){
    out.println("myVar.push('" + list[i] + "');");
}
%>

想要实现什么?请记住,javascript将在客户端浏览器上执行,而java代码将在服务器上执行。因此,您不应该引用javascript中的java变量。相反,使用jsp标记,您只能在服务器上的加载时间获得列表。

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

var myVariable='ArrayList@123455'

但是你需要的是

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

使用json序列化库。那些是为你打印的。或者写一个json打印机,它实际上是非常直接的^^。