Серверный JavaScript 1.4. Руководство по использованию


         

Взаимодействие JavaScript с Java


Когда Вы обращаетесь к пакету или классу Java или работаете с объектом или массивом Java, Вы используете один из специальных объектов LiveConnect. Доступ JavaScript к Java имеет место в объектах, резюме по которым дано в следующей таблице.

ОбъектОписание

JavaArray

Обёрнутый/wrapped массив Java, доступ к которому выполняется в коде JavaScript.

JavaClass

Ссылка JavaScript на Java-класс.

JavaObject

Обёрнутый объект Java, доступ к которому выполняется в коде JavaScript.

JavaPackage

Ссылка JavaScript на Java-пакет.

ПРИМЕЧАНИЕ:

Поскольку Java является строго типизированным, а JavaScript -слабо типизированным языком, машина выполнения JavaScript конвертирует значения аргументов в соответствующие типы данных тех языков, которые Вы используете с LiveConnect. См. .

Иногда существование объекта LiveConnect прозрачно, поскольку Вы работаете с Java интуитивно. Например, Вы можете создать в Java String -объект и присвоить его переменной JavaScript myString с помощью оператора new в конструкторе Java таким образом:

var myString = new java.lang.String("Hello world")

В предыдущем примере переменная myString это JavaObject, потому что она содержит экземпляр Java String-объекта. Как JavaObject, myString имеет доступ к методам public-экземпляра java.lang.String и его суперкласса java.lang.Object. Эти методы Java доступны в JavaScript как методы JavaObject, и Вы можете вызывать их так:

myString.length() // возвращает 11

Вы имеете доступ к конструкторам, полям и методам класса через тот же синтаксис, который используете в Java. Например, следующий код JavaScript использует свойства объекта request для создания нового экземпляра класса Bug и присвоения затем этого нового экземпляра переменной JavaScript bug. Поскольку Java-класс требует целочисленного значения для первого поля, этот код конвертирует строковое свойство объекта request к целому числу, перед тем как передать его конструктору.

var bug = new Packages.bugbase.Bug(
parseInt(request.bugId),
   request.bugPriority,
   request);



Содержание  Назад  Вперед