这是我正在谈论的例子:
在我的网页上我有一个javascript代码,这里有一些:
function createChartControl(htmlDiv1)
{
// Initialize Gantt data structures
//project 1
var parentTask1 = new GanttTaskInfo(1, "Old code review", new Date(2010, 5, 11), 208, 50, "");
......................
我想创建一个java类内容方法来为这个javascript函数“GanttTaskInfo”提供数据。 例如获取名称的函数,获取id和日期。 好吧,我想这次我很清楚:D 我搜索了一种在javascript中调用java方法的方法,我发现你说的applet,但我觉得它对我没用。 再次感谢
答案 0 :(得分:25)
当它在服务器端时,使用Web服务 - 可能是RESTful with JSON。
当Java代码在applet中时,您可以使用JavaScript桥。 Java和JavaScript编程语言之间的桥梁非正式地称为LiveConnect,在Java插件中实现< / strong>即可。以前特定于Mozilla的LiveConnect功能,例如调用静态Java方法,实例化新Java对象以及从JavaScript引用第三方包的功能,现在可在所有浏览器中使用。
以下是文档中的示例。看看methodReturningString
。
Java代码:
public class MethodInvocation extends Applet {
public void noArgMethod() { ... }
public void someMethod(String arg) { ... }
public void someMethod(int arg) { ... }
public int methodReturningInt() { return 5; }
public String methodReturningString() { return "Hello"; }
public OtherClass methodReturningObject() { return new OtherClass(); }
}
public class OtherClass {
public void anotherMethod();
}
网页和JavaScript代码:
<applet id="app"
archive="examples.jar"
code="MethodInvocation" ...>
</applet>
<script language="javascript">
app.noArgMethod();
app.someMethod("Hello");
app.someMethod(5);
var five = app.methodReturningInt();
var hello = app.methodReturningString();
app.methodReturningObject().anotherMethod();
</script>
答案 1 :(得分:-4)
Java是服务器端语言,而javascript是客户端语言。两者都无法沟通。如果您使用Java设置了一些服务器端脚本,则可以在客户端上使用AJAX以向其发送异步请求,从而调用任何可能的Java函数。例如,如果您使用jQuery作为js框架,您可以查看$.ajax()
方法。或者如果你想使用普通的javascript here's a tutorial。