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

       

JavaScript-Вызова Java


Директория $NSHOME\js\samples\bugbase содержит простое приложение, иллюстрирующее использование LiveConnect. В этом разделе описан код JavaScript этого приложения-образца. См. в разделе описание кода Java этого приложения.

Приложение bugbase представляет собой простую БД "жучков". Вы вводите bug, заполняя клиентскую форму номером жучка, приоритетом, продуктом, в котором он обнаружен, и кратким описанием. Другая форма позволяет просмотреть существующий bug.

Следующий JavaScript обрабатывает акцию входа:

// . проверить, что ID был введён.

if (request.bugId != "") {
// . Создаётся Bug-экземпляр и присваивается переменной.
   var bug = new Packages.bugbase.Bug(parseInt(request.bugId),

      request.bugPriority, request);

   // . Получить доступ к массиву и сохранить экземпляр в нём.

   project.bugsLock.lock();
   project.bugs[parseInt(request.bugId)] = bug;
   project.bugsLock.unlock();

   // . Отобразить информацию.

   write("<P><b><I>====>Committed bug: </I></b>");

   write(bug, "<BR>");
}
// . Если ID не был введён, предупредить пользователя.
else {
   write("<P><b><I>====>Couldn't commit bug: please complete
      all fields.</I></b>");
}

Шаги в этом коде:

  1. Проверить, что пользователь ввёл ID для bug. Только в этом случае выполняется вход в bug.
  2. Создать экземпляр Java-класса Bug и присвоить его переменной bug. Конструктор класса Bug принимает три параметра: два из них являются свойствами объекта request; третий это сам объект JavaScript request. Поскольку они являются элементами формы, эти свойства объекта request являются строками JavaScript. Код изменяет ID на целое число перед передачей его Java-конструктору. После передачи request -объекта Java-конструктору этот конструктор может затем вызывать его методы. Этот процесс обсуждается в разделе .

  3. Использовать project.bugsLock для получения исключительного доступа к массиву project.bugs и сохранить затем новый Bug -экземпляр в этом массиве, индексированным по номеру bug'а, специфицированному в форме. Заметьте, что этот код сохраняет ссылку на Java-объект как значение свойства JavaScript-объекта. О блокировке см.
  4. .
  5. Отобразить клиенту информацию о bug'е, который Вы только что сохранили.

  6. Если bug ID не введён, вывести сообщение о том, что bug не может быть найден в БД.



Содержание раздела