从Java调用.js文件中的JavaScript函数
Calling JavaScript function in a .js file from Java
在不同于Java文件的.js文件中调用JavaScript函数的最佳方法是什么?
比如说,我在Java文件中有一个这样的字符串:
String test = "[name1, name2, name2]";
我想做的是:
- 将Java字符串转换为JavaScript数组
- 将JavaScript数组传递给另一个.js文件中的JavaScript函数
谢谢,索尼
如果您想在Java应用程序中使用JavaScript,可以使用Rhino。
如果您想从服务器端Java web应用程序调用客户端JavaScript,可以使用DWR的反向Ajax。
祝你好运!
如果您想集成Javascript和Java,那么您可以使用Rhino。请参阅下面的示例以获得更好的理解:
test.js
function test(array){
for(var i in array){
out.println(array[i]);
}
}
RhinoTest.java
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import org.mozilla.javascript.Context;
import org.mozilla.javascript.ContextFactory;
import org.mozilla.javascript.Scriptable;
public class RhinoTest {
public static void main(String[] args) {
Context ctx = new ContextFactory().enterContext();
Scriptable scope = ctx.initStandardObjects();
try {
Object out = Context.javaToJS(System.out, scope);
scope.put("out", scope, out);
FileReader fr = new FileReader("test.js");
ctx.evaluateReader(scope, fr, "<cmd>", 1, null);
fr.close();
String[] strArray = {"name1","name2","name3"};
Object jsArray = Context.javaToJS(strArray, scope);
scope.put("jsArray", scope, jsArray);
ctx.evaluateString(scope, "test(jsArray)", "<cmd>", 1, null);
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
Context.exit();
}
}
相关文章:
- 创建一个类似链接的按钮,并通过Javascript函数打开一个新的弹出窗口
- 正在全局范围中查找JavaScript函数
- 如何将输入(type=text)从html表单传递到javascript函数
- 如何调用这个匿名 JavaScript 函数
- 通过Ajax将JavaScript函数传递给PHP文件
- 在javascript函数中设置全局变量
- 如何在执行此特定onclick事件时执行JavaScript函数
- 使用javascript函数在页面初始化后加载jquery
- javascript函数同步
- 如何将一个JavaScript函数回调为多个函数
- 在javascript函数中使用php变量
- 代码背后调用一个JavaScript函数的按钮点击-C#
- 将JavaScript函数与HTML分离
- 组合两个javascript函数
- 在 Java 中的 JavaScript 函数中插入 Wicket 值
- javascript函数内部的代码用逗号而不是分号分隔
- href属性内的javascript函数
- 使用html表单中的参数调用JavaScript函数
- 分析Javascript函数中的多个对象
- javascript函数的:和=之间的区别