• 15 апреля стартует «Курс «SQL-injection Master» ©» от команды The Codeby

    За 3 месяца вы пройдете путь от начальных навыков работы с SQL-запросами к базам данных до продвинутых техник. Научитесь находить уязвимости связанные с базами данных, и внедрять произвольный SQL-код в уязвимые приложения.

    На последнюю неделю приходится экзамен, где нужно будет показать свои навыки, взломав ряд уязвимых учебных сайтов, и добыть флаги. Успешно сдавшие экзамен получат сертификат.

    Запись на курс до 25 апреля. Получить промодоступ ...

Как Передать Свой Параметр Для Обработки В Ssjs

  • Автор темы lionk
  • Дата начала
L

lionk

Никак не могу понять до конца что именно сабмитится для обработки в ssjs.
Может кто то на пальцах объяснить?
Когда я агента вызываю или форму сабимтю я точно понимаю и контролирую что передаётся на сервер для обработки.
А что передаётся когда к примеру я нажимаю на ссылку у которой определён onCilck SSJS?
И как контролировать это?



И практический вопрос, к примеру:
у меня на странице есть JavaScript переменная var rekv="333", как мне передать её в ssjs обработчик и потом сделать частичное обновление страницы?

Раньше я бы сделал асинхронный вызов агента, передал параметр, принял ответ и жаваскриптом отобразил результат. Как мне сделать подобное на идиологии xpage?
 

NickProstoNick

Статус как статус :)
Lotus Team
22.08.2008
1 851
27
BIT
0
Общение между CSJS и SSJS произвожу по средствам полей, скрытых полей, параметров или имен к элементам.
 

NickProstoNick

Статус как статус :)
Lotus Team
22.08.2008
1 851
27
BIT
0
прошу прощения... атрибуты

element.setAttribute()
element.attributeName = 'value'
 
L

lionk

всёравно не догдал. чего атрибуты, можно пример?
 

NickProstoNick

Статус как статус :)
Lotus Team
22.08.2008
1 851
27
BIT
0
Ну я, честно говоря не понимаю постановки задачи.
Зачем разносить код между клиентом и сервером? Таких случаев реально мало. Ну по крайней мере я с таким почти не встречался.
Давай конкретный пример.

Агент через SSJS запускается легко. На SSJS есть все необходимые классы почти все как LS + еще и добавлены @-формулы.
 
L

lionk

>Зачем разносить код между клиентом и сервером?
Ну например у тебя есть большой яваскрипт объект(класс) с которым постоянно работает пользователь, он инициализируется при загрузке страницы, и НЕ предпологает необходимость отправки данных ВО ВРЕМЯ работы с ним пользователем. когда пользователь закончил и всё сделал, нужно сохранить несколько занчений всего объекта, вот их и передать на сервер. хочу отметить что это разделение "естественное", и между собой по логике не связанное.

пререфразирую вопрос:
как передать данные в ssjs НЕ используя поля(именованные объекты XPAGE) ?
 

NickProstoNick

Статус как статус :)
Lotus Team
22.08.2008
1 851
27
BIT
0
как бы ты передавал данные в классической реализации?
Я тебе предложил вариант.. заполнять нужные поля или атрибуты полей, элементов, а дальше обрабатываешь на сервере.
Ты же все равно как-то передавать данные надо.
Ну и зачем все делать на клиенте? Может лучше нагружать сервер?
 
L

lionk

>Ну и зачем все делать на клиенте? Может лучше нагружать сервер?
Ну зачем пить молоко когда есть пиво? :D

Добавлено: Хотя, а как изменять яваскриптом атрибуты элементов, и потом в ssjs их считывать?
 

NickProstoNick

Статус как статус :)
Lotus Team
22.08.2008
1 851
27
BIT
0
CSJS
JavaScript:
document.getElementById("#{id:in1}").setAttribute("name", "submit_content");
SSJS
JavaScript:
getComponent("in1").getAttributes()
 
J

JohnLemon

CSJS
JavaScript:
document.getElementById("#{id:in1}").setAttribute("name", "submit_content");
SSJS
JavaScript:
getComponent("in1").getAttributes()
У меня не получается что то, на одну кнопку делаю на клиенте
Код:
document.getElementById("#{id:inputText1}").setAttribute("name", "dsads");
на вторую на сервере
Код:
sessionScope.sesScope = getComponent("inputText1").getAttributes();
в inputText такая бяка javax.faces.component.UIComponentBase$AttributesMap@0, что это )) ?
 

NickProstoNick

Статус как статус :)
Lotus Team
22.08.2008
1 851
27
BIT
0
.getAttributes();
ты не думал взять конкретный атрибут? а не все сразу?
 
J

JohnLemon

.getAttributes();
ты не думал взять конкретный атрибут? а не все сразу?
Да конечно пробовал, если .getAttributes(name) ошибка Script interpreter error, line=1, col=66: [ReferenceError] 'name' not found если .getAttributes("name") Script interpreter error, line=1, col=52: Java method 'getAttributes(string)' on java class 'com.ibm.xsp.component.xp.XspInputText' not found
 

NickProstoNick

Статус как статус :)
Lotus Team
22.08.2008
1 851
27
BIT
0
учись пользоваться хелпом и искать в интернете.
Код:
var component=getComponent(”nameOfCheckBoxGroup”).getAttributes().get(”value”);
 
J

JohnLemon

учись пользоваться хелпом и искать в интернете.
Код:
var component=getComponent(”nameOfCheckBoxGroup”).getAttributes().get(”value”);
Блин, спасибо, но сделал так
Код:
sessionScope.sesScope = getComponent("inputText1").getAttributes().get("name");
в итоге в inputText1 ничего не появляется, хотя в Data указал SessionScope - sesScope((
 

NickProstoNick

Статус как статус :)
Lotus Team
22.08.2008
1 851
27
BIT
0
Ты явно чего-то недопонимаешь.
Что за документ? Что за поле?
Документ открыт на странице? Или это совершенно новый документ?
 

NickProstoNick

Статус как статус :)
Lotus Team
22.08.2008
1 851
27
BIT
0
Документ открыт на странице? Набросай простую страницу и выложи код
 
Мы в соцсетях:

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