在我的 JSP 中,我有一个 Java 数组menuNames,我想将该数组中的一个值分配给一个文本区域。下面我提到了 Javascript 代码,请建议我更正代码。
function setMainMenuURL(index) {
document.getElementById("SelectedURL").value=<%menuNames[index]%>;
}
在我的 JSP 中,我有一个 Java 数组menuNames,我想将该数组中的一个值分配给一个文本区域。下面我提到了 Javascript 代码,请建议我更正代码。
function setMainMenuURL(index) {
document.getElementById("SelectedURL").value=<%menuNames[index]%>;
}
您不能将值从 java 数组分配给 javascript 函数,因为 javascript 函数是在客户端调用的,而 java 是在服务器端执行的。所以用java在服务器端创建javascript数组
您混淆了 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];
}
使用JSP Expression
-
document.getElementById("SelectedURL").value=<%=menuNames[index]%>;
JSP 表达式元素包含一个脚本语言表达式,该表达式被求值、转换为字符串并插入到表达式出现在 JSP 文件中的位置。
因为表达式的值被转换为字符串,所以您可以在 JSP 文件中的一行文本中使用表达式,无论它是否用 HTML 标记。
表达式元素可以包含根据 Java 语言规范有效的任何表达式,但不能使用分号来结束表达式。
请把它作为对 Quoi 回答的评论:这个:
document.getElementById("SelectedURL").value=<%=menuNames[index]%>;
不管用。因为“索引”变量在编译的 servlet 中未定义。