Javascript中的Java数组索引:我的语法是否正确
Java Array index inside Javascript:Is my Syntax correct?
在我的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 中是未定义的。
相关文章:
- node.js是否具有'match()'方法如果是,语法是什么
- javascript 函数返回的语法(空格)是否会影响结果
- 外部javascript文件的语法是否与javascript不同
- 是否有允许使用jquery风格语法进行操作的jade插件
- 在node.js中,如何以最轻量级的方式检查给定的代码字符串在语法上是否正确
- 是否有更好的语法来执行此代码
- 如果我在常规语法旁边包含供应商前缀,转换是否会应用两次
- 异步和延迟语法是否可以异步=“异步”
- 我是否使用了正确的jQuery语法
- 在ng-options中,是否可以使用“(索引,项目)在vm.items”语法中进行预选
- foreach绑定语法是否有效
- 在JS“if”语句参数中,是否有用于声明本地作用域变量的简明语法
- Javascript是否有类似于Java的增强的for循环语法
- If语句在javascript中不工作,语法是否正确?
- 将函数作为这样的函数的参数在语法上是否可以接受
- 以下代码的语法是否有效
- 是否有检查变量类型的快捷语法
- 是否有一个javascript模板库使用与PlayFramework1.x中相同的语法
- 较短的理解语法是否需要一个范围作为来源
- Javascript中的Java数组索引:我的语法是否正确