java - 在 java 函数中使用 javascript 变量

标签 java javascript jsp

想要一个关于如何访问 java 范围内的 javascript 变量的解决方案。 在下面的代码中,<%=toppings[k]%> k 是一个 javascript 变量,我如何访问它,我收到一条消息,因为 k JVM 未知

function value_transitAccountCounter(i){
    alert('welcome -->'+i);
    for(var k=0;k<5;k++){
        if(i==k){
            return '<%=toppings[k]%>';
        }
    }
}

最佳答案

您的 Java 代码正在服务器上运行。您的 JavaScript 代码正在客户端 上运行。所以你不能在服务器上使用k,它在页面完成、发送到浏览器并执行其中的 JavaScript 之前不存在。

从您的代码来看,您似乎只需要访问存储在服务器端 toppings 数组中的字符串。您有两个选择:

  1. 将整个 toppings 数组作为 JavaScript 数组输出到页面脚本。然后你就可以在客户端使用它了。

  2. 让您的value_transitAccountCounter 函数生成ajax call到您的服务器端代码,询问 toppings[i] 的值是多少。您需要更改 value_transitAccountCounter 以接受用于返回值而不是实际返回值的回调,因为 ajax 调用将是异步的(value_transitAccountCounter 将在ajax 调用完成,因此,在您有返回值之前)。 (可能进行同步 ajax 调用,但这是一个非常非常糟糕的主意,你最好假装它不可能。它会在调用时完全锁定大多数浏览器的 UI执行,令人难以置信刺激用户。)

关于java - 在 java 函数中使用 javascript 变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5934312/

相关文章:

java - Java Web 服务上传后隐藏 Sharepoint 文档

java - Kafka 生产者/消费者在 kafka 节点故障后重新连接

javascript - 在 javascript 对象数组中查询唯一属性值的最佳方法?

javascript - 在 Material-UI TableCell 中格式化日期字符串

java - JSTL & Spring : Accessing methods with arguments

java - 如何将jsp中描述的字段或值传递给jasper报表,以便它可以以PDF格式显示数据

java - 打包 PHP 代码进行分发

Java Ucanaccess 将数据插入表中忽略重复记录(主键)

javascript - 如何中断 iframe 中的单词

java - 如何将JSP页面循环中的值传递到另一个JSP页面?