作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想在Javascript中访问jsp数组。怎么可能?
JSp代码
<%!
String s[];
%>
<%
List l=(List)request.getAttribute("listResource");
System.out.println("The Elements In List::"+l);
if(l!=null)
{
System.out.println("The Size of List::"+l.size());
int siz=l.size();
Iterator itr=l.iterator();
while(itr.hasNext())
{
s=new String[siz];
int i=0;
s[i]=itr.next().toString();
System.out.println("The Elments are:"+s[i]);
i++;
}
}
%>
JavaScript代码
function verify_details()
{
var resourceId=document.getElementById("res").value;
var rid=new Array();
rid=<%=s%>
alert(rid[0]);
}
我尝试了这样的方法,但没有得到值。
最佳答案
JSP代码在服务器端执行,并生成文本。其中一些文本恰好是 JavaScript 代码。 JavaScript 代码在客户端执行,Java 数组不再作为数据结构存在。
当你写
rid=<%=s%>
您要求生成以下字符串:"rid="+ s.toString()
s
是一个字符串数组,生成的 Javascript 代码将如下所示:
rid=[Ljava.lang.String;@1242719c
这显然不是有效的 JavaScript 代码。
当您使用 JSP 生成 JavaScript 代码时,它与 HTML 代码没有任何不同。如果你想从包含“a”、“b”和“c”的 String Java 数组生成代码 rid = ['a', 'b', 'c'];
,你需要迭代 Java 数组并输出一个单引号,后跟当前字符串,后跟一个单引号,后跟一个逗号。此外,您应该转义每个字符串,将引号字符转换为\',将换行符转换为\n 等。使用 StringEscapeUtils.escapeJavaScript
从 commons-lang 来做到这一点。
关于javascript - 如何在javascript中访问jsp数组变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6556047/
我是一名优秀的程序员,十分优秀!