Xpages Starter Kit Server.jss

#xpages #global

#xpages #глобальный

Вопрос:

У меня много кодов SSJS для многих NSF, большинство NSF используют один и тот же код функций. Итак, я попытался создать библиотеку со всеми общими функциями, я пытаюсь использовать Xpages Starter Kit, потому что он утверждает, что у него есть поставщик библиотеки SSJS и неявный глобальный SSJS.

Там есть файл Server.jss с надписью «// ваш код библиотеки SSJS отправляется сюда».

Я поместил туда несколько простых кодов, просто чтобы протестировать его, но я не мог понять, как это работает.

 print("Hello World");
function hello(){
   print("hello");
}
 

Как это работает?

Я создал и установил сайт обновления, разместил <openntf:canvas/> его на xpage. Тег canvas создан, но, похоже, с SSJS ничего не происходит. На консоли сервера ничего нет, и при попытке вызвать функцию hello выдается сообщение об ошибке.

Как я могу получить доступ к функциям SSJS в библиотеке?

Комментарии:

1. Вы объявили зависимость от вашего Extlib?

2. Где я должен объявить? В библиотеке или в nsf, где я использую библиотеку?

Ответ №1:

Идентификатор библиотеки — org.openntf.xsp.starter — определяется в разных местах в Starter Kit. Он также присутствует с «/» вместо «.» для некоторых контекстов.

Кроме того, дважды проверьте, включена ли библиотека в свойствах Xsp для вашего приложения.

Также стоит взглянуть на плагин отладки Domino в OpenNTF для отладки вашего кода непосредственно в Eclipse. Также проверьте Справку> Поддержка> Трассировка и Справка> Поддержка> Войти в Domino Designer на наличие ошибок для вашего класса.

Комментарии:

1. Библиотека по-прежнему оригинальна, я не вносил в нее никаких изменений, кроме Server.jss. Библиотека включена в свойствах Xsp в моем приложении. Библиотека работает, потому что я могу вызвать из нее элемент управления canvas. То, что я не понял, как это работает, — это Server.jss. Как использовать функции там.

2. Есть ли способ загрузить SSJS до события загрузки страницы и включить его для всех страниц? Я пытаюсь отредактировать CreateView в классе ViewHandler. Он загружает библиотеку SSJS, но запускается только после загрузки предыдущей страницы.

3. Джесси Галлахер попытался внедрить Java в событие beforePageLoad из ViewHandler, но не смог. Я не уверен, что вы можете загрузить оттуда библиотеку SSJS. Он должен быть выделен в качестве ресурса, например, для компонента просмотра XPage. Но CreateView — это место, где загружается этот компонент представления вместе со всеми дочерними элементами. В то же время выполняется любой код с привязкой загрузки страницы («${…}»). Поэтому, если вы хотите использовать библиотеку SSJS в привязках загрузки страниц, я не думаю, что вы сможете загрузить ее до того, как она вам понадобится.

4. Я понял. Вы предлагаете способ сделать это так? Иметь библиотеку плагинов SSJS, которая может быть доступна во всех приложениях?

5. В качестве способа загрузки библиотеки SSJS на страницу мне был предложен RequestCustomizerFactory. Я не использовал его, и я не уверен, загружается ли он до запуска события beforePageLoad.