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

如何从javascript访问java.util.List会话?,java,javascript,session,Java,Javascript,Session,在java中,我的代码是 List abcList; request.getSession().setAttribute("abc", abcList); 我想用javascript访问这个列表 var myVariable='<%=(List)session.getAttribute("abc")%>'; var myVariable=''; 我没有在javascript中获取列表(abcList)值……您必须编写代码,将列表打印为javascript数组。这很可能只会

在java中,我的代码是

List abcList;   
request.getSession().setAttribute("abc", abcList);
我想用javascript访问这个列表

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

我没有在javascript中获取列表(abcList)值……

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

var myVariable='ArrayList@123455'
但你需要的是

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

使用json序列化库。那些是为你印刷的。或者编写一个json打印机,实际上非常简单。

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

var myVariable='ArrayList@123455'
但你需要的是

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

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

您需要将列表序列化为Javascript对象。有一些库可以为您执行此操作:

您需要将列表序列化为Javascript对象。有一些库可以为您这样做:

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

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

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

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

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

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

您是否查看了生成的源代码?您需要发出合法、合理的JavaScript。它给了我不适当的输出(package.subpackage…),但它能够检测列表大小!你有没有看过生成的源代码?您需要发出合法、合理的JavaScript。它给了我不适当的输出(package.subpackage…),但它能够检测列表大小!list[i]给了我一个错误:'表达式的类型必须是数组类型,但它已解析为list'@RohitKKK Mohkhan将数组与列表混淆。使用普通的Java5+for/each语法。列表值也必须进行JS转义。就我个人而言,我会使用
而不是Scriptlet,近十年来,Scriptlet一直被建议禁止使用。更好的方法是使用JSON库。list[i]给了我一个错误:'表达式的类型必须是数组类型,但它解析为list'@RohitKKK Mohkhan将数组与列表混淆。使用普通的Java5+for/each语法。列表值也必须进行JS转义。就我个人而言,我会使用
而不是Scriptlet,近十年来,Scriptlet一直被建议禁止使用。更好的方法是使用JSON库。我在第一次加载页面时调用函数,因此从jsp调用变量不会有帮助,我希望这件事用于分页,因为我希望从设置会话的java代码中获得完整列表。我在第一次加载页面时调用函数,所以从jsp调用变量是没有帮助的,我希望这个东西用于分页,因为我希望从我设置会话的java代码中得到完整的列表。