Подтвердить что ты не робот

Вызов java-методов в javascript-коде

Я создал метод содержимого класса Java, возвращающий String, мой вопрос - как вызвать эту функцию в моем javascript-коде, чтобы использовать возвращаемое значение из java-метода. Я хочу называть код 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, "");
......................

Я хочу создать методы содержимого класса Java для предоставления данных этой функции javascript "GanttTaskInfo". например, для получения имени, получения идентификатора и даты. хорошо, я думаю, что на этот раз я ясно: D Я искал способ вызова java-методов в javascript, и я нашел апплеты, как вы сказали, но я думаю, что это не полезно для меня. Еще раз спасибо

4b9b3361

Ответ 1

Когда на стороне сервера используются веб-сервисы - возможно, restfull с json. Например, посмотрите на этот учебник http://developers-blog.org/blog/default/2010/04/27/JQuery-Ajax-Client-and-Jersey-Rest-JSON-Endpoint-Example.

Когда java-код находится в апплете, вы можете использовать javascript-мост. Мост между языками программирования Java и JavaScript известен неформально LiveConnect, реализован в java-плагине. Раньше функциональность LiveConnect, зависящая от Mozilla, такая как возможность вызова статических методов 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>

Ответ 2

Java - это серверный язык, а javascript - язык на стороне клиента. Оба не могут общаться. Если вы настроили серверную часть script с помощью Java, вы можете использовать AJAX на клиенте, чтобы отправить асинхронный запрос на него и таким образом, вызывать любые возможные функции Java. Например, если вы используете jQuery как js framework, вы можете взглянуть на метод $.ajax(). Или, если вы хотите сделать это, используя простой javascript, здесь учебник.