Как программно (SSJS) найти, к какому элементу базового документа привязан элемент управления вводом пользовательского интерфейса на Xpage?

Задача состоит в том, что мне нужно обновить поле базового документа только с учетом идентификатора поля редактирования или поля со списком на Xpage. Все это должно произойти до фактического сохранения страницы. Невозможно найти какие-либо методы в UIComponent и подклассах, которые позволяют узнать имя фактического элемента документа, к которому привязан текущий элемент управления вводом XSP. Пожалуйста, помогите.


person Misha Ovsichtcher    schedule 13.10.2015    source источник
comment
Не могли бы вы рассказать больше о своем сценарии использования? На самом деле я понятия не имею, что вы хотите делать с этой информацией :-)   -  person Oliver Busse    schedule 14.10.2015
comment
Большое спасибо, Пол, я попробую. Вот пример использования: у меня есть несколько разделов на моей xpage с похожими группами полей ({f1_A, f2_A, f3_A}, {f1_B, f2_B, f3_B} и т. Д.), Которые могут быть добавлены или удалены пользователем со страницы, нажав + или кнопку x в любом порядке. Отображение контролируется свойством рендеринга каждого раздела. Когда пользователь щелкает x, поля раздела должны быть очищены. Если я сохраню документ с необработанным разделом, поля в серверной части не обновятся. Поэтому мне нужно сделать это в коде кнопки x. Чтобы иметь единственную функцию, мне нужно знать, к чему привязан мой элемент управления ui.   -  person Misha Ovsichtcher    schedule 14.10.2015


Ответы (1)


Следующее получит привязку Expression Language для компонента с идентификатором inputText1:

var inputText1:com.ibm.xsp.component.xp.XspInputText = getComponent("inputText1");
var valBinding:com.sun.faces.el.ValueBindingImpl = inputText1.getValueBinding("value");
return valBinding.getExpressionString();

Это вернется, например, "# {document1.myField}". Используя базовый синтаксический анализ строк, вы сможете получить то, что хотите.

Как и Оливер, мне было бы интересно услышать пример использования. Это не то, что мне нужно было использовать.

В качестве бонуса попробуйте поискать в локальной папке в проводнике пакетов XPage / Custom Control. Вы увидите все методы получения и установки компонентов на вашем XPage, которые подскажут, какие свойства и методы доступны. F3 и F4 очень полезны для просмотра всех методов / свойств и иерархии классов.

person Paul Stephen Withers    schedule 13.10.2015