• Познакомьтесь с пентестом веб-приложений на практике в нашем новом бесплатном курсе

    «Анализ защищенности веб-приложений»

    🔥 Записаться бесплатно!

  • CTF с учебными материалами Codeby Games

    Обучение кибербезопасности в игровой форме. Более 200 заданий по Active Directory, OSINT, PWN, Веб, Стеганографии, Реверс-инжинирингу, Форензике и Криптографии. Школа CTF с бесплатными курсами по всем категориям.

Как сделать "computed subform" на xpages?

garrick

Lotus Team
26.10.2009
1 342
150
BIT
128
Как сделать что-то подобное "Computed Subform" на XPages? Грузить всё сразу в div и прятать "до поры-да времени" не подойдёт, т.к. вариантов subform очень много. Суть в чём? Пользователю открывается форма с некоторыми общими полями - он их заполняет. А одно из этих общих полей это "тип документа" и при выборе типа документа подгружаются дополнительно поля для ввода данных специфичные выбранному типу документа.
 
H

Hogmuzzle

Просто на элементе нужно прописать условие render и далее по изменению типа документа рефрешить по событию родителя скрытого элемента условие render переопределится и элемент покажется ну или скроется в зависимости от условия
 
H

Hogmuzzle

свойство render не просто "прячет" а совсем не создает на странице ничего если установлено в false и значит что на клиенте сабформа будет отсутствовать полностью. При ajax запросе будет обновляться и отображаться. Есть и другие более сложные способы, но если вам нужно чтобы эта сабформа была частью формы, то любой другой способ неприменим. Допустим можно просто по csjs http запросу получать html и вставлять в форму но в этом случае на сервер при post отправке ничего не попадет потому что вот так работает JSF.
 

lmike

нет, пердело совершенство
Lotus Team
27.08.2008
7 927
608
BIT
150
свойство render не просто "прячет" а совсем не создает на странице ничего если установлено в false и значит что на клиенте сабформа будет отсутствовать полностью
повторю - на форму не хотят выносить элемент
 
H

Hogmuzzle

Если элемента нет на форме, а значит в дереве контролов который JSF создает при обработке Xpages, то и получить данные из него также нельзя. Тогда нужно на сервере взять получить дерево и вставить в нужное место нужный элемент на java и тогда все будет. Я так делал, но задача эта не очень тривиальна в принципе.
Есть еще вариант использовать dynamicContent из Extension Library, но в данном случае это излишне на мой взгляд. Сделать можно все что угодно, главное чтобы это не было победой над здравым смыслом.
 

NickProstoNick

Статус как статус :)
Lotus Team
22.08.2008
1 851
27
BIT
0
Если элемента нет на форме, а значит в дереве контролов который JSF создает при обработке Xpages, то и получить данные из него также нельзя. Тогда нужно на сервере взять получить дерево и вставить в нужное место нужный элемент на java и тогда все будет. Я так делал, но задача эта не очень тривиальна в принципе.
Есть еще вариант использовать dynamicContent из Extension Library, но в данном случае это излишне на мой взгляд. Сделать можно все что угодно, главное чтобы это не было победой над здравым смыслом.
Я так понимаю у человека сложно с пониманием.
Ты понимаешь разницу между отсутствует на web-странице (render) и отсутствие в дизайне в принципе?
 
H

Hogmuzzle

Разницу понимаю. Это у тебя сложно с пониманием того, что если чего-то нет, то и получить что-то из ничего не получится. Вот моя основная мысль.
 

rinsk

Lotus Team
12.11.2009
1 151
125
BIT
2
а если меняется дерево? ;)
Мне то же интересно, как в бакэнде поменять тек. дерево. - только стоит задача не подформу динамически "встраивать" , а набор элементов управления (до сотни полей+лейоуты ), которые компонуются из справочника в зависимости от тек. состояния док-та. Ест-сно они при post должны упасть в базу...
 
H

Hogmuzzle

а если меняется дерево? ;)
Я выше и писал что один из способов это поменять дерево, только это явная победа над здравым смыслом. Если есть задача что то отобразить по условию, то свойство render для этого идеально подходит, но если нужно чтобы не было элемента на форме в дизайне, то выбрана неверная технология и JSF для этого не подходит. Можно использовать сервлеты например и самому парсить request и т.д.
 

lmike

нет, пердело совершенство
Lotus Team
27.08.2008
7 927
608
BIT
150
Если есть задача что то отобразить по условию
есть ряд задач - подключить контент, кот. уже существует (в данном случае контрол)
но контролов может быть куча и лепить все их на форму, в кот они не нужны (в том или ином случае) - неудобно, да и дизайнер будет глючить...
то выбрана неверная технология и JSF
что значит выбрана - этот вариант без альтернативы ;) (в срезе xPages)
Можно использовать сервлеты например и самому парсить request
а можно писать на Си... :)
странная дискуссия...
вот были сабформы, кот. вычисляются и подгружаются динамически и разработчики использовали эту фичу
и топик начался с поиска подобного на хэпагах
 
H

Hogmuzzle

есть ряд задач - подключить контент, кот. уже существует (в данном случае контрол)
но контролов может быть куча и лепить все их на форму, в кот они не нужны (в том или ином случае) - неудобно, да и дизайнер будет глючить...
что значит выбрана - этот вариант без альтернативы ;) (в срезе xPages)а можно писать на Си... :)
странная дискуссия...
вот были сабформы, кот. вычисляются и подгружаются динамически и разработчики использовали эту фичу
и топик начался с поиска подобного на хэпагах
Если использовать CustomControl и определить в нем Design Definition в виде просто div элемента с названием контрола, то дизайнер глючить не будет. Лепите сколько хотите для дизайнера это просто <div> все что внутри CustomControl дизайнеру фиолетово. Если выбрана технология Xpages и без вариантов, то ее особенность в том что дерево вида строится на сервере и если в дизайне в xml нет определения контрола, то и соответствующий ему java объект создан не будет со всеми вытекающими. Так что или шашечки или ехать.
 

lmike

нет, пердело совершенство
Lotus Team
27.08.2008
7 927
608
BIT
150
. Если выбрана технология Xpages и без вариантов, то ее особенность...
это в топике не обсуждается (я точно этого не делаю ;) ) и про "особенности", большинство участников в курсе
и если люди интересуются инъекцией это вполне имеет право на жизнь
цель - "упростить" дизайн-тайм и перенести часть на код
 

alexas1

Green Team
10.04.2014
1 202
225
BIT
34
есть задача что то отобразить по условию, то свойство render для этого идеально подходит,
- "это идеально подходит", на сложной страничке может привести к её медленному умиранию (в смысле быстродействия), а вот display:none подойдёт, но, элемент будет на странице(
Если выбрана технология Xpages и без вариантов
- ни что не мешает вместе с JSF использовать simpleHTML - как хочу, так и изменяю DOM.
соответствующий ему java объект создан не будет со всеми вытекающими.
- и что из этого вытекает? getComponent не будет работать?;)
И ващще, обращаться к серверу с каждым телодвижением - не comme il faut, можешь сделать на CSJS - делай.
Задача сводится к следующим моментам:
1 во время работы загрузка CustomControls в нужные места по условиям (один из вариантов отмечен выше - работает на ура)
2 если необходимо сохранить динамически изменённый дизайн странички, вместе с сохранением дока, сохранить последние условия, по которым грузились СС и новые айтемы, если они появились.
3 при последующем открытии этой странички - сразу подгрузить нужные контролы по сохранённым в доке условиям.
если люди интересуются инъекцией это вполне имеет право на жизнь
- лучше, всё же, грузить заранее подготовленные СС, чем заморачиваться кусочками.
 

NickProstoNick

Статус как статус :)
Lotus Team
22.08.2008
1 851
27
BIT
0
Если использовать CustomControl и определить в нем Design Definition в виде просто div элемента с названием контрола, то дизайнер глючить не будет. Лепите сколько хотите для дизайнера это просто <div> все что внутри CustomControl дизайнеру фиолетово. Если выбрана технология Xpages и без вариантов, то ее особенность в том что дерево вида строится на сервере и если в дизайне в xml нет определения контрола, то и соответствующий ему java объект создан не будет со всеми вытекающими. Так что или шашечки или ехать.
Тебе уже много раз говорили: в зависимости от задачи - могут применяться разные методы.

Описываю ситуацию. Вопросы "почему", "зачем", "а можно было взять готовое" - не обсуждаются!
Поступила тебе задача написать опросник. Не единоразовый опрос, а полноценную систему. Структуру базы не обсуждаем. Сугубо WEB-страницу.
Какие методы реализации?
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!