0

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

function setMainMenuURL(index) {

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

4 回答 4

1

您不能将值从 java 数组分配给 javascript 函数,因为 javascript 函数是在客户端调用的,而 java 是在服务器端执行的。所以用java在服务器端创建javascript数组

于 2013-02-01T11:57:23.693 回答
1

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

您正在尝试做的——这不起作用——是在 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];
}
于 2013-02-01T11:52:37.333 回答
1

使用JSP Expression-

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

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

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

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

于 2013-02-01T11:49:54.307 回答
0

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

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

不管用。因为“索引”变量在编译的 servlet 中未定义。

于 2013-02-01T12:06:19.113 回答