Javascript中的Java数组索引:我的语法是否正确

Java Array index inside Javascript:Is my Syntax correct?

本文关键字:语法 是否 我的 中的 Java 数组 索引 Javascript      更新时间:2023-09-26

在我的JSP中,我有一个Java数组menuNames,我想从该数组中为文本区域赋值。下面我提到了Javascript代码,请建议我更正代码。

function setMainMenuURL(index) {
document.getElementById("SelectedURL").value=<%menuNames[index]%>;
}

你混淆了你的Java代码(在JSP中)和你的JavaScript代码。Java 代码在服务器端运行,在将任何内容返回到浏览器之前,与 JavaScript 代码无关。JavaScript 在 Java 代码已经运行之后,在客户端,在用户的浏览器中运行。

你正在尝试做的 - 这是行不通的 - 在你的Java代码中使用JavaScript参数。由于Java已经执行,这完全没有意义。

最好的办法是将 Java 数组打印为有效的 JavaScript 数组(将其保存到 JavaScript 变量中),然后在 JavaScript 代码中使用它。像这样:

var javascriptArrayMenuNames = <%= Java code to output JSON representation of the array %>;
function setMainMenuUrl(index) {
    document.getElementById('SelectedURL').value = javascriptArrayMenuNames[index];
}
您不能将 Java 数组

中的值分配给 JavaScript 函数,因为 JavaScript 函数是在客户端调用的,而 Java 是在服务器端执行的。 所以在服务器端用Java创建JavaScript数组

使用 JSP Expression -

document.getElementById("SelectedURL").value=<%=menuNames[index]%>;

JSP 表达式元素包含一个脚本语言表达式,该表达式经过计算、转换为字符串并插入表达式在 JSP 文件中出现的位置。

因为表达式的值被转换为字符串,所以可以在 JSP 文件中的文本行中使用表达式,无论它是否用 HTML 标记。

表达式元素可以包含根据 Java 语言规范有效的任何表达式,但不能使用分号结束表达式。

请把它作为对Quoi回答的评论:这:

document.getElementById("SelectedURL").value=<%=menuNames[index]%>;

因为"index"变量在编译的 servlet 中是未定义的。