在JavaScript代码中调用java方法
我创build了一个java类的内容方法返回一个string,我的问题是如何在我的JavaScript代码中调用这个函数来使用从java方法返回的值。 我想调用embedded在浏览器中的客户端Java代码。
这里是我在说什么的例子:
在我的网页我有一个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, ""); ......................
我想创build一个java类的内容方法来提供数据到这个javascript函数“GanttTaskInfo”。 例如获取名字的函数,获取id和date。 以及我认为这个时间即时通讯清楚:D我search的方式来调用JavaScript中的Java方法,我发现小程序,如你所说,但我认为它对我没有用。 再次感谢
当它在服务器端使用Web服务 – 也许rest与JSON。 例如,看看这个教程http://developers-blog.org/blog/default/2010/04/27/JQuery-Ajax-Client-and-Jersey-Rest-JSON-Endpoint-Example 。
- 创buildWeb服务(例如https://stackoverflow.com/questions/727111/java-restful-web-service-tutorial-with-eclipse-and-tomcat )
- 从javascrpt调用它的URL(例如jqery 如何从jQuery或dojo 调用Web服务 )
当Java代码在applet中时,您可以使用JavaScript桥。 Java和JavaScript编程语言之间的桥梁, 非正式地称为LiveConnect ,是在java插件中实现的 。 以前Mozilla特有的LiveConnectfunction(如调用静态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>
Java是服务器端语言,而JavaScript是客户端语言。 两者都无法沟通。 如果您已经使用Java设置了一些服务器端脚本,则可以在客户端上使用AJAX ,以向其发送asynchronous请求,从而调用任何可能的Java函数。 例如,如果您使用jQuery作为js框架,您可以查看$.ajax()
方法。 或者,如果你想使用普通的JavaScript来做到这一点, 这里是一个教程 。