java如何从javascript中访问会话中存储的数组变量?
我有一个servlet,在其中我在会话范围内存储了一个数组,如下所示
session.setAttribute("pageNames",pageNames);
现在,这个servlet将控件传输到一个JSP页面,该页面在加载时调用函数“getPage()”,如下所示:
<body id="qwer" onload="getPage('<%=(String[])session.getAttribute("pageNames")%>'>
“getPage()”的javascript代码如下所示
function getPage(pageNamesArray)
{
var ele = document.getElementById('app');
for(var i=0;i<10;i++)
{
var imageLabel = document.createElement("label");
imageLabel.innerHTML = pageNamesArray[i];
ele.appendChild(imageLabel);
}
}
我希望我会从我存储在会话中的“pageNames”数组中获取前10个值的名称,但我会得到以下输出
[Ljava.lang.String;@17a8未定义未定义
我在servlet中测试了代码,发现数组“pageNames”中填充了40多个值
有谁能建议我如何从 JSP页面? 提前谢谢
# 1 楼答案
您的方法是正确的,但这不是打印数组元素的方式。您必须在阵列中循环并输出组件
为了保持整洁,您可以创建另一个javascript函数,如:
然后有:
我在上面做的是用页面名创建一个Javascript数组,输出如下:
我用JSTL来做这个,但是你也可以用scriptlet。这个想法是在阵列中循环