使用javascript变量作为数组索引
我有以下代码:使用javascript变量作为数组索引,javascript,arrays,jsp,variables,indexing,Javascript,Arrays,Jsp,Variables,Indexing,我有以下代码: var n = 1; var term = "${abc[n].term}"; console.log("term = " + term); 术语似乎是空的,但如果我替换 var term=“${abc[n].term}” 通过 var term=“${abc[1].term}” 它起作用了 看起来jsp正在寻找deck对象的n属性,当我使用is作为数组索引时,如何修复它,使n被它的值替换 编辑: 尝试混合使用JSTL和Javascript似乎不是一个好主意,如果要使用Java
var n = 1;
var term = "${abc[n].term}";
console.log("term = " + term);
术语似乎是空的,但如果我替换
var term=“${abc[n].term}”代码>
通过
var term=“${abc[1].term}”代码>
它起作用了
看起来jsp正在寻找deck对象的n
属性,当我使用is作为数组索引时,如何修复它,使n
被它的值替换
编辑:
尝试混合使用JSTL和Javascript似乎不是一个好主意,如果要使用Javascript变量作为数组索引,必须将对象复制到数组对象,如下所示:
var deck = new Array();
<c:forEach var="v" items="${abc}">
deck.push("${v.term}");
</c:forEach>
var n = 1;
console.log("term = " + deck[n]);
var deck=newarray();
顶推(${v.term});
var n=1;
console.log(“term=“+deck[n]);
如果没有正确使用引号,请尝试以下操作:
var term = "${abc[" + n +"].term}";
“${abc[n].term}”
此处n被视为字符串的一部分,而不是变量n
。所以试着把它连接起来 实际上,这是我一开始尝试的,但如果我这样做,我会得到以下异常:java.lang.NumberFormatException:对于输入字符串:“+n+”java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)java.lang.Integer.parseInt(Integer.java:481)JSP中的${…
用于计算服务器端变量。您似乎完全忽略了这一点,您可以将JavaScript与JSP/JSTL/EL完美地结合起来。您应该只了解JSP/JSTL/EL在webserver中运行并生成HTML代码,而JavaScript是生成的HTML代码的一部分,而HTML代码又在webbrowser中运行。在浏览器中的页面上单击鼠标右键,然后查看源代码。你现在看到了吗?您应该以这样的方式编写JSP/JSTL/EL代码,以使其完全生成所需的HTML/JS代码。